编写Js代码要注意的几条规则
答案:2 悬赏:50
解决时间 2021-02-27 23:16
- 提问者网友:你在我眼中是最帅
- 2021-02-27 15:20
编写Js代码要注意的几条规则
最佳答案
- 二级知识专家网友:茫然不知崩溃
- 2021-02-27 15:34
2.检查客户端支持对象的能力(渐进式)而不是检查其客户端,测试要使用的对象。
3.访问既有HTML中的内容而不是通过Js添加HTML(行为层与结构层分离)
4.不要使用专有DOM对象(例如IE的document.all)
5.将脚本放进一个.js文件而不是在HTML中到处可见。
6.对运行良好而且不用客户端编程的网站进行改进,而不是首先添加脚本然后添加非脚本的备用方案。
7.代码要保持独立,不要使用可能与其他脚本冲突的全局变量。(可用对象字面量)
3.访问既有HTML中的内容而不是通过Js添加HTML(行为层与结构层分离)
4.不要使用专有DOM对象(例如IE的document.all)
5.将脚本放进一个.js文件而不是在HTML中到处可见。
6.对运行良好而且不用客户端编程的网站进行改进,而不是首先添加脚本然后添加非脚本的备用方案。
7.代码要保持独立,不要使用可能与其他脚本冲突的全局变量。(可用对象字面量)
全部回答
- 1楼网友:一池湖水
- 2021-02-27 16:41
<br><!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" " <a href="http://wenwen.soso.com/z/urlalertpage.e?sp=shttp%3a%2f%2fwww.w3.org%2ftr%2fxhtml1%2fdtd%2fxhtml1-transitional.dtd%22%3e" target="_blank">http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"></a><br><html xmlns=" <a href="http://wenwen.soso.com/z/urlalertpage.e?sp=shttp%3a%2f%2fwww.w3.org%2f1999%2fxhtml%22%3e" target="_blank">http://www.w3.org/1999/xhtml"></a><br><head><br><meta http-equiv="content-type" content="text/html; charset=utf-8" /><br><title>magnifier</title><br><style type="text/css"><br>#magnifier{<br>width:342px;<br>height:420px;<br>position:absolute;<br>top:100px;<br>left:250px;<br>font-size:0;<br>border:1px solid #000;<br>}<br>#img{<br>width:342px;<br>height:420px;<br>}<br>#browser{<br>border:1px solid #000;<br>z-index:100;<br>position:absolute;<br>background:#555;<br>}<br>#mag{<br>border:1px solid #000;<br>overflow:hidden;<br>z-index:100;<br>}<br></style><br><script type="text/javascript"><br>function geteventobject(w3cevent) { //事件标准化函数<br>return w3cevent || window.event;<br>}<br>function getpointerposition(e) { //兼容浏览器的鼠标x,y获得函数<br>e = e || geteventobject(e);<br>var x = e.pagex || (e.clientx + (document.documentelement.scrollleft || document.body.scrollleft));<br>var y = e.pagey || (e.clienty + (document.documentelement.scrolltop || document.body.scrolltop));<br>return { 'x':x,'y':y };<br>}<br>function setopacity(elem,level) { //兼容浏览器设置透明值<br>if(elem.filters) {<br>elem.style.filter = 'alpha(opacity=' + level * 100 + ')';<br>} else {<br>elem.style.opacity = level;<br>}<br>}<br>function css(elem,prop) { //css设置函数,可以方便设置css值,并且兼容设置透明值<br>for(var i in prop) {<br>if(i == 'opacity') {<br>setopacity(elem,prop[i]);<br>} else {<br>elem.style[i] = prop[i];<br>}<br>}<br>return elem;<br>}<br>var magnifier = {<br>m : null,<br>init:function(magni){<br>var m = this.m = magni || {<br>cont : null, //装载原始图像的div<br>img : null, //放大的图像<br>mag : null, //放大框<br>scale : 15 //比例值,设置的值越大放大越大,但是这里有个问题就是如果不可以整除时,会产生些很小的白边,目前不知道如何解决<br>}<br>css(m.img,{<br>'position' : 'absolute',<br>'width' : (m.cont.clientwidth * m.scale) + 'px', //原始图像的宽*比例值<br>'height' : (m.cont.clientheight * m.scale) + 'px' //原始图像的高*比例值<br>})<br>css(m.mag,{<br>'display' : 'none',<br>'width' : m.cont.clientwidth + 'px', //m.cont为原始图像,与原始图像等宽<br>'height' : m.cont.clientheight + 'px',<br>'position' : 'absolute',<br>'left' : m.cont.offsetleft + m.cont.offsetwidth + 10 + 'px', //放大框的位置为原始图像的右方远10px<br>'top' : m.cont.offsettop + 'px'<br>})<br>var borderwid = m.cont.getelementsbytagname('div')[0].offsetwidth - m.cont.getelementsbytagname('div')[0].clientwidth; //获取border的宽<br>css(m.cont.getelementsbytagname('div')[0],{ //m.cont.getelementsbytagname('div')[0]为浏览框<br>'display' : 'none', //开始设置为不可见<br>'width' : m.cont.clientwidth / m.scale - borderwid + 'px', //原始图片的宽/比例值 - border的宽度<br>'height' : m.cont.clientheight / m.scale - borderwid + 'px', //原始图片的高/比例值 - border的宽度<br>'opacity' : 0.5 //设置透明度<br>})<br>m.img.src = m.cont.getelementsbytagname('img')[0].src; //让原始图像的src值给予放大图像<br>m.cont.style.cursor = 'crosshair';<br>m.cont.onmouseover = magnifier.start;<br>},<br>start:function(e){<br>if(document.all){ //只在ie下执行,主要避免ie6的select无法覆盖<br>magnifier.createiframe(magnifier.m.img);<br>}<br>this.onmousemove = magnifier.move; //this指向m.cont<br>this.onmouseout = magnifier.end;<br>},<br>move:function(e){<br>var pos = getpointerposition(e); //事件标准化<br>this.getelementsbytagname('div')[0].style.display = '';<br>css(this.getelementsbytagname('div')[0],{<br>'top' : math.min(math.max(pos.y - this.offsettop - parseint(this.getelementsbytagname('div')[0].style.height) / 2,0),this.clientheight - this.getelementsbytagname('div')[0].offsetheight) + 'px',<br>'left' : math.min(math.max(pos.x - this.offsetleft - parseint(this.getelementsbytagname('div')[0].style.width) / 2,0),this.clientwidth - this.getelementsbytagname('div')[0].offsetwidth) + 'px' //left=鼠标x - this.offsetleft - 浏览框宽/2,math.max和math.min让浏览框不会超出图像<br>})<br>magnifier.m.mag.style.display = '';<br>css(magnifier.m.img,{<br>'top' : - (parseint(this.getelementsbytagname('div')[0].style.top) * magnifier.m.scale) + 'px',<br>'left' : - (parseint(this.getelementsbytagname('div')[0].style.left) * magnifier.m.scale) + 'px'<br>})<br>},<br>end:function(e){<br>this.getelementsbytagname('div')[0].style.display = 'none';<br>magnifier.removeiframe(magnifier.m.img); //销毁iframe<br>magnifier.m.mag.style.display = 'none';<br>},<br>createiframe:function(elem){<br>var layer = document.createelement('iframe');<br>layer.tabindex = '-1';<br>layer.src = 'javascript:false;';<br>elem.parentnode.appendchild(layer);<br>layer.style.width = elem.offsetwidth + 'px';<br>layer.style.height = elem.offsetheight + 'px';<br>},<br>removeiframe:function(elem){<br>var layers = elem.parentnode.getelementsbytagname('iframe');<br>while(layers.length >0){<br>layers[0].parentnode.removechild(layers[0]);<br>}<br>}<br>}<br>window.onload = function(){<br>magnifier.init({<br>cont : document.getelementbyid('magnifier'),<br>img : document.getelementbyid('magnifierimg'),<br>mag : document.getelementbyid('mag'),<br>scale : 3<br>});<br>}<br></script><br></head><br><body><br><div id="magnifier"><br><img src="<strong>在这里输入你的照片源地址或链接</strong> /><br><div id="browser"></div><br></div><br><div id="mag"><img id="magnifierimg" /></div><br></body><br>注意粗体,关于标签我不太懂
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯