我写的鼠标移出的代码为什么当移出的时候为什么div一直颤抖,而不移出呢。

来源:2-1 JS速度动画

马小萍

2016-08-12 21:06

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>速度动画</title>

<style>

body,div,span{

margin:0;

    padding:0;

 }

 #div{

width:200px;

height:200px;

background:red;

position:relative;

left:-200px;

top:0;

 }

 #share{

width:20px;

height:50px;

background:blue;

position:absolute;

left:200px;

top:75px;

 } 

</style>

<script>

window.onload=function(){

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

oDiv.onmouseover=function(){

startMove();

}

oDiv.onmouseout=function(){

startMove1();

}

}

var timer=null;

function startMove(){

clearInterval(timer);

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

setInterval(function(){

if(oDiv.offsetLeft==0){

clearInterval(timer);

}else{

oDiv.style.left=oDiv.offsetLeft+10+'px';

}

},30);

}

function startMove1(){

clearInterval(timer);

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

setInterval(function(){

if(oDiv.offsetLeft==-200){

clearInterval(timer);

}else{

oDiv.style.left=oDiv.offsetLeft-10+'px';

}

},30);

}

  </script>


</head>


<body>

<div id="div"><span id="share">分享</span></div>

</body>

</html>


写回答 关注

2回答

  • Dling
    2016-08-16 10:23:30

    因为你的timer是空的呀~根本没有给它赋值,就像楼上Peakid说的 timer = setInterval(function(){}

    要把setInterval(function(){}这个定时器赋给timer

  • Peakid
    2016-08-13 05:30:25

    对startMove和startMove这两个函数的定义中,缺少了获取oDid的步骤

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

    Peakid 回复马小萍

    我仔细检查了下,startMove和startMove这两个函数中,设定定时器的地方有问题。 第42行和第53行,应该是timer = setInterval(function(){ 抱歉之前看错了。一定要加timer=

    2016-08-15 05:04:50

    共 2 条回复 >

JS动画效果

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

113925 学习 · 1443 问题

查看课程

相似问题