昨天在CodeAcademy開始學習JavaScript,並決定我實際上可以編寫代碼。開玩笑。在網上瀏覽,發現有類似學習曲線的人,但沒有任何答案解決了我的問題。即使在等待調用函數時,setTimeout也不會等待
在HTML中我有4個div。 3從左邊距600px。 1的左邊距400px。
還有4個按鈕。當我按下一個按鈕時,我試圖讓對應的div在一秒鐘內向左滑動,直到剩下:400px。
我以前有divs跳(沒有采取幾乎看起來像滑動的步驟)到正確的位置,但已經打破了代碼。好像setTimeout沒有等待規定的時間。我做了一些在線調查,並認爲在setTimeout完成時,保證金已經持續下降到最終的安息地點。
<html>
<head><title></title>
<script type="text/javascript" language="javascript">
//<![CDATA[
var stopPositionVisible = 400;
var stopPositionHiding = 200;
function slideIn(xslide){
slidingDivInNow = document.getElementById(xslide);
if (parseInt(slidingDivInNow.style.left) > stopPositionVisible) {
slidingDivInNow.style.left = parseInt(slidingDivInNow.style.left) - 2 + "px";
console.log(slidinDivInNow.style.left);
}
setTimeout(slideIn(xslide), 20);
}
//]]>
</script>
</head>
<body>
<a id="div0link" href="#" onclick="slideIn('d1');">Home</a>
<a id="div1link" href="#" onclick="slideIn('d2');">page1</a>
<a id="div2link" href="#" onclick="slideIn('d3'); ">page2</a>
<a id="div3link" href="#" onclick="slideIn('d4'); ">page3</a>
<div id="d1" style="position:absolute; left:400px; top:50px; background:black; color:white; width:200px">horizontally sliding div</div>
<div id="d2" style="position:absolute; left:600px; top:60px; background:blue; color:white; width:200px">horizontally sliding div</div>
<div id="d3" style="position:absolute; left:600px; top:70px; background:red; color:white; width:200px">horizontally sliding div</div>
<div id="d4" style="position:absolute; left:600px; top:80px; background:green; color:white; width:200px">horizontally sliding div</div>
</body>
</html>
謝謝你的任何見解。
20毫秒幾乎沒有時間。不確定你的意思是「保證金已經持續下降」;該保證金不會自行下滑,你告訴它何時以及如何。 – 2011-12-24 16:38:46
http://jsfiddle.net/mjaric/xRzXk/ – 2011-12-24 16:50:41
謝謝@mjaric - 這是我最喜歡的網站 – 2011-12-24 17:27:29