<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档ccc</title> <style> #div1{width:30px;height:500px;background:yellow;position:absolute;top:30px;} #div2{width:30px;height:30px;background:red;position:absolute;} #div3{width:800px; background:url(img/1.jpg);position:absolute;left:40px;top:30px;} </style> <script> window.onload = function() { var oDiv1=document.getElementById('div1'); var oDiv2=document.getElementById('div2'); var oDiv3=document.getElementById('div3'); var timer=null; document.onclick=function(){ timer=setTimeout(function(){ oDiv2.onmousedown=function(ev){ var ev=ev||event; var disY=ev.clientY-this.offsetTop; var T=0; document.onmousemove=function(ev){ var ev=ev||event; var iScale=0; var Tmax=oDiv1.offsetHeight-oDiv2.offsetHeight; T=ev.clientY-disY; if(T<0) {T=0;} else if(T>Tmax){T=Tmax;} oDiv2.style.top=T+'px'; iScale=T/Tmax; oDiv3.style.height=iScale*500+'px'; } document.onmouseup=function(){ document.onmousemove=document.onmouseup=null; } } },100); } }; </script> </head> <body> <div id="div1"> <div id="div2"></div> </div> <div id="div3"></div> </body></html>
oDiv2.onmousedown=function(ev){
var ev=ev||event;
var disY=ev.clientY-this.offsetTop;
var T=0;
document.onmousemove=function(ev){
var ev=ev||event;
var iScale=0;
var Tmax=oDiv1.offsetHeight-oDiv2.offsetHeight;
T=ev.clientY-disY;
if(T<0)
{T=0;}
else if(T>Tmax){T=Tmax;}
oDiv2.style.top=T+'px';
iScale=T/Tmax;
oDiv3.style.height=iScale*500+'px';
}
document.onmouseup=function(){
document.onmousemove=document.onmouseup=null;
}
这一段写的有问题
请问什么问题??
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档ccc</title> <style> #div1{width:30px;height:500px;background:yellow;position:absolute;top:30px;} #div2{width:30px;height:30px;background:red;position:absolute;} #div3{width:800px; background:url(img/1.jpg);position:absolute;left:40px;top:30px;} </style> <script> var oDiv1,oDiv2,oDiv3,timer; //把变量提出来,你的方法里面看不到这些变量 window.onload = function() { oDiv1=document.getElementById('div1'); oDiv2=document.getElementById('div2'); oDiv3=document.getElementById('div3'); timer=null; document.onclick=function(){ timer=setTimeout(function(){ oDiv2.onmousedown=function(ev){ var ev=ev||event; var disY=ev.clientY-this.offsetTop; var T=0; document.onmousemove=function(ev){ var ev=ev||event; var iScale=0; var Tmax=oDiv1.offsetHeight-oDiv2.offsetHeight; T=ev.clientY-disY; if(T<0) {T=0;} else if(T>Tmax){T=Tmax;} oDiv2.style.top=T+'px'; iScale=T/Tmax; oDiv3.style.height=iScale*500+'px'; } document.onmouseup=function(){ document.onmousemove=document.onmouseup=null; } } },100); } }; </script> </head> <body> <div id="div1"> <div id="div2"></div> </div> <div id="div3"></div> </body></html>
你好当时复制有误
var oDiv1=document.getElementById('div1');
var oDiv2=document.getElementById('div2');
var oDiv3=document.getElementById('div3');
我开始声明了的,浏览器也没有报错?但是setInterval一直不起作用
@hduhdc: 你的变量是在onload事件中的,不是全局的,而setInterval和setTimeout的方法中使用的变量或者是调用方法必须是全局的
我估计你连我发的代码都没有执行过,下次你先验证下在回复
@刘宏玺: 这个地方可以不用全局变量,写在内部可以形成闭包,同样可以正常访问。