为了账号安全,请及时绑定邮箱和手机立即绑定

错在哪里?求大神帮忙!

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			*{
				margin:0;
				padding:0;
			}
			#div{
				width:200px;
				height:200px;
				background:red;
				position:relative;
				left:-200px;
				
			}
			#div span{
				width:20px;
				height:50px;
				background:blue;
				position:absolute;
				left:200px;
				top:75px;
				color:white;
				padding-top:10px;
			}
		</style>
		<script>
			window.onload=function(){
				var div=document.getElementById('div');
				
				div.onmouseover=function(){
					move(0);
				}
				div.onmouseout=function(){
					move(-200);
				}
			}
			
			var div=document.getElementById('div');
				var timer;
				function move(iTarget){
					clearInterval(timer);
					timer=setInterval(function(){
						var speed = (iTarget-div.offsetLeft)/20;
							speed = speed>0?math.ceil(speed):math.floor(speed);
						if(div.offsetLeft==iTarget){
							clearInterval(timer);
						}else{
							div.style.left=div.offsetLeft+speed+'px';
						}
						
					},30);
				}
				
			
		</script>
	</head>
	<body>
		<div id="div">
			<span id="share">分享</span>
		</div>
	</body>
</html>


正在回答

2 回答

1,var div=document.getElementById('div'); 放在move函数里面

2,math改成大写 Math

        <script>
            window.onload=function(){
                var div=document.getElementById('div');
                 
                div.onmouseover=function(){
                    move(0);
                }
                div.onmouseout=function(){
                    move(-200);
                }
            }
             
            var timer;
            function move(iTarget){
            	var div=document.getElementById('div');
                clearInterval(timer);
                timer=setInterval(function(){
                    var speed = (iTarget-div.offsetLeft)/20;
                        speed = speed >0 ? Math.ceil(speed):Math.floor(speed);
                    if(div.offsetLeft==iTarget){
                        clearInterval(timer);
                    }else{
                        div.style.left=div.offsetLeft+speed+'px';
                    }
                     
                },30);
            }     
        </script>


0 回复 有任何疑惑可以回复我~
#1

慕数据5775487 提问者

全局变量函数内部不可以用吗?
2016-12-12 回复 有任何疑惑可以回复我~
#2

慕数据5775487 提问者

非常感谢!
2016-12-12 回复 有任何疑惑可以回复我~

 

                div.onmouseover=function(){

                    move(this,0);

                }

function move(obj,iTarget){

                     var div=document.getElementById('div');

         

                    clearInterval(obj.timer);

                    obj.timer=setInterval(function(){

                        var speed = (iTarget-div.offsetLeft)/20;

                            speed = speed>0?Math.ceil(speed):Math.floor(speed);

                        if(div.offsetLeft==iTarget){

                            clearInterval(timer);

                        }else{

                            div.style.left=div.offsetLeft+speed+'px';

                        }

                         

                    },30);

                }

      div变量放在里边,math写错了           


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JS动画效果
  • 参与学习       113925    人
  • 解答问题       1443    个

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

进入课程

错在哪里?求大神帮忙!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信