為什么往左只回了一下,然后就開(kāi)始來(lái)回動(dòng),求大神幫忙解答
<!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>速度動(dòng)畫(huà)</title>
</head>
<style>
?? ?body,div,span{
?? ??? ?margin:0;
?? ??? ?padding:0;
?? ?}
?? ?#div1{
?? ??? ?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('div1');
?? ??? ?oDiv.onmouseover=function(){
?? ??? ??? ?startMove();
?? ??? ?}
?? ??? ?oDiv.onmouseout=function(){
?? ??? ??? ?startMove1();
?? ??? ?}
?? ?}
?? ?var timer=null;
?? ?
?? ?function startMove(){
?? ??? ?clearInterval(timer);//防止每次鼠標(biāo)經(jīng)過(guò)的時(shí)候都要出發(fā)定時(shí)器
?? ??? ?var oDiv=document.getElementById('div1');
?? ??? ?setInterval(function(){//定時(shí)器
?? ??? ??? ?if(oDiv.offsetLeft>=0){
?? ??? ??? ??? ?clearInterval(timer);//清空/暫停定時(shí)器
?? ??? ??? ?}else{
?? ??? ??? ??? ?oDiv.style.left=oDiv.offsetLeft+10+'px';
?? ??? ??? ?}
?? ??? ?},30)
?? ?}
?? ?
?? ?function startMove1(){
?? ??? ?clearInterval(timer);//防止每次鼠標(biāo)經(jīng)過(guò)的時(shí)候都要出發(fā)定時(shí)器
?? ??? ?var oDiv=document.getElementById('div1');
?? ??? ?setInterval(function(){//定時(shí)器
?? ??? ??? ?if(oDiv.offsetLeft<=-200){
?? ??? ??? ??? ?clearInterval(timer);//清空/暫停定時(shí)器
?? ??? ??? ?}else{
?? ??? ??? ??? ?oDiv.style.left=oDiv.offsetLeft-10+'px';
?? ??? ??? ?}
?? ??? ?},30)
?? ?}
?? ?
</script>
<body>
?? ?<div id="div1">
?? ??? ?<span id="share">分享</span>
?? ?</div>
</body>
</html>
2016-03-02
你的代碼應(yīng)該修改為
2016-03-02
你這個(gè)錯(cuò)誤很低級(jí),你要清除定時(shí)器,可你的timer是啟動(dòng)的定時(shí)器嗎?你需要將啟動(dòng)定時(shí)給timer才能清除。timer=setInterval();然后clearInterval(timer);