亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求問:有時候當鼠標移入他不會停下來,會一直往前走,突然又跑回來了;有一兩次正正常的。

<DOCTYPE! html>
<head>
?<meta charset="utf-8">
?<title>動起來</title>
?<link rel="stylesheet" type="text/css" href="style.css">
?<script type="text/javascript">
?window.onload = function(){
??var oTotal = document.getElementById('total');
??oTotal.onmouseover = function(){
???startMove(0);
???}
??oTotal.onmouseout = function(){
???startMove(-150);
??
??}
?}
?var timer=null;
?function startMove(iTarget){
??clearInterval(timer);
??var oTotal = document.getElementById('total');
??var speed = (iTarget-oTotal.offsetLeft)/15;
???????????? speed=speed>0?Math.ceil(speed):Math.floor(speed);
??????? timer = setInterval(function(){
??????? if(oTotal.offsetLeft == iTarget){
??????? ?clearInterval(timer);
?????? ??}else{
?????? ???oTotal.style.left=oTotal.offsetLeft+speed+'px';
?????? ??}
??????? ?},30);
??????? }


?</script>
</head>
<body>
?<div id="total">
?<div id="share">
?</div>
?<span>分享</span>


?
</body>
</html>


正在回答

2 回答

div標簽沒寫好,span應該在里面,css樣式定義好,注意var speed = (iTarget-oTotal.offsetLeft)/15;需要整除,因為后面if(oTotal.offsetLeft == iTarget)必須滿足條件才會清除定時器,動畫才會停下

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

aladdinx 提問者

嗯,我div寫的有些復雜,掉了一個尾標簽用,我改了之后沒什么反應,用了ceil和floor函數,應該可以吧。你的這段代碼在chrome上有時會出現直接縮進去的現象。不過還是很謝謝
2016-03-21 回復 有任何疑惑可以回復我~
#2

YangZiHong 回復 aladdinx 提問者

導致的原因你可以試一下,是因為你給速度賦值時沒寫在定時器里面,你鼠標移上去的時候迅速移開再移進去就會發生這種情況,在執行startMove函數的時候會清除上一個定時器 var speed = (iTarget-oTotal.offsetLeft)/15; speed=speed>0?Math.ceil(speed):Math.floor(speed);
2016-03-21 回復 有任何疑惑可以回復我~
#3

qq_要D大調_0 回復 YangZiHong

你好,我還是不懂,清除計時器,但是函數不是還是重新給speed賦值嗎,不懂為什么
2016-12-24 回復 有任何疑惑可以回復我~

<DOCTYPE! html>
<head>
?<meta charset="utf-8">
?<title>動起來</title>
?<link rel="stylesheet" type="text/css" href="style.css">
?<style type="text/css">
??? *{margin: 0;padding: 0;}
??? #total{
????? width: 150px;
????? height: 300px;
????? position: absolute;
????? left: -150px;
????? top: 0;
????? background: #9cf;
??? }
??? #share{
????? width: 30px;
????? text-align: center;
????? height: 60px;
????? line-height: 30px;
????? position: absolute;
????? left:150px;
????? top: 130px;
????? background-color: #fcc;
??? }
? </style>
?<script type="text/javascript">
?window.onload = function(){
? var oTotal = document.getElementById('total');
? oTotal.onmouseover = function(){
?? startMove(0);
?? }
? oTotal.onmouseout = function(){
?? startMove(-150);
?
? }
?}
?var timer=null;
?function startMove(iTarget){
? clearInterval(timer);
? var oTotal = document.getElementById('total');
? var speed = (iTarget-oTotal.offsetLeft)/15;
???????????? speed=speed>0?Math.ceil(speed):Math.floor(speed);
??????? timer = setInterval(function(){
??????? if(oTotal.offsetLeft == iTarget){
???????? clearInterval(timer);
???????? }else{
????????? oTotal.style.left=oTotal.offsetLeft+speed+'px';
???????? }
???????? },30);
??????? }


?</script>
</head>
<body>
?<div id="total">
?<span id="share">分享</span>
?</div>
?


?
</body>
</html>

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

舉報

0/150
提交
取消

求問:有時候當鼠標移入他不會停下來,會一直往前走,突然又跑回來了;有一兩次正正常的。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號