首页 > 代码库 > js窗口边缘滑出初级代码
js窗口边缘滑出初级代码
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>practice</title> 6 <style type="text/css"> 7 *{margin:0px;padding:0px;} 8 #div1 {position:relative;left:-200px;width:200px;height:200px;margin-top:50px;background-color: pink;} 9 #share{background-color:lightblue;width:20px;height:50px;position: absolute;left:200px;top:75px;} 10 </style> 11 <script type="text/javascript"> 12 window.onload=function(){ 13 var div1=document.getElementById("div1"); 14 div1.onmouseover=startMove; 15 /*不加括号,就是正常的,鼠标滑过,开始移动,表示鼠标滑过,调用这个函数*/ 16 /*div1.onmouseover=startMove();*/ 17 /*加了括号之后,一打开就开始移动,表示,把函数执行的结果给div1的鼠标滑过事件,所以会去先执行函数, 18 因为函数执行的结果就是offsetLeft==0,然后把这个结果给div1的鼠标滑过事件,所以会出现一打开就跑, 19 这是为了得到函数执行的结果*/ 20 div1.onmouseout=startMove1; 21 }; 22 var timer=[‘1‘]; 23 /*必须要在外面定义,放在函数里面定义就失败了; 24 含义:timer函数外定义,在两个函数内同时调用,意为,当startMove1调用时,清楚startMove的timer,反之亦如此; 25 这样就不会同时运行两个timer,一个函数执行timer前,先清楚另一个timer,这样往前停止,再调用timer往后, 26 否则同时运行会出错;*/ 27 function startMove(){ 28 /*alert(timer.length);*/ 29 clearInterval(timer); 30 timer=setInterval( 31 function(){ 32 if(div1.offsetLeft==0){clearInterval(timer)}//判断要计算,所以不能带‘px‘,用offsetLeft 33 else {/*alert(div1.style.left);*/ 34 //offsetLeft显示无‘px‘,style.left显示有‘px‘ 35 /*疑问:alert里面这样用,第一次显示不出left值,后面才可以,为什么? 36 换成offsetLeft第一次就可以显示出来*/ 37 div1.style.left=div1.offsetLeft+10+‘px‘; 38 //这个地方要+-,最好不带‘px‘ 39 console.log(div1.offsetLeft); 40 }} 41 ,30); 42 } 43 function startMove1(){ 44 clearInterval(timer); 45 timer=setInterval( 46 function(){ 47 if(div1.offsetLeft==-200){clearInterval(timer);} 48 else{div1.style.left=div1.offsetLeft-10+‘px‘; 49 console.log(div1.offsetLeft);} 50 } 51 ,30); 52 } 53 </script> 54 </head> 55 <body> 56 57 <div id="div1"> 58 <span id="share">分享</span> 59 </div> 60 </body> 61 </html>
js窗口边缘滑出初级代码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。