qq_浮世_4
2016-12-20 21:54
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>下拉菜单</title>
<style type="text/css">
*{margin:0;padding: 0;font-size: 13px;}
div{height:300px;width:200px;position: relative;left:-200px;top:0;background: red;}
span{width:20px;height:50px;background: blue;position: absolute;left:200px;top:75px;}
</style>
<script>
window.onload=function(){
var oDiv=document.getElementById('div1');
oDiv.onmouseover=function(){
startMove();
}
oDiv.onmouseout=function(){
startMove1();
}
}
var int=null;
function startMove(){
clearInterval(int);
var oDiv=document.getElementById('div1');
var int=setInterval(function(){if(oDiv.offsetLeft==0)
{
clearInterval;
}
else
{
oDiv.style.left=oDiv.offsetLeft+1+'px';
}},30);
}
function startMove1(){
clearInterval(int);
var oDiv=document.getElementById('div1');
var int=setInterval(function(){if(oDiv.offsetLeft==-200)
{
clearInterval;
}
else
{
oDiv.style.left=oDiv.offsetLeft-1+'px';
}},30);
}
</script>
</head>
<body>
<div id="div1"><span id="share">分享</span></div>
</body>
</html>
你在定时器前面重新定义了“int”变量,所以一开始你在程序中调用的清除定时器根本没发挥作用,函数的清除参数也根本不是你在下方调用的定时器的返回值,而且你在定时器里面的函数里的条件判断中的“clearInterval()”,根本不对,没有参数,导致整个程序出错(ps:定义变量的时候不要用语言自带的关键字“int”,这是硬性的语法规则!)
为什么把int 前的var去掉就好了
JS动画效果
113925 学习 · 1443 问题
相似问题
回答 3
回答 2