簡體   English   中英

我的JavaScript動畫怎么了?

[英]Whats wrong with my JavaScript animation?

因此,我要設計此網頁,並且我希望月球的圖像從屏幕的底部升至頂部。 這是HTML:

<body>
    <div id="Moon" onload="Moon()"></div>
</body>

CSS:

#Moon{
    width: 150px;
    height: 150px;
    left: 50px;
    top: 600px;
    background: transparent url(../Img/Moon.SVG) no-repeat ;
    position: absolute;
}

和JavaScript動畫:

function Moon(){
    var Moon=document.getElementById("Moon");
    var yposition=Moon.style.top;
    var id = setInterval(frame, 10);
    function frame(){
        if (Moon.style.top > 100) {
          yposition--; 
          Moon.style.top = yposition + 'px'; 
        } else {
          clearInterval(id);
        } 
        frame();
    }
}

但是由於某些原因,月亮的圖像停留在頁面的底部,並且完全沒有移動。 有任何想法嗎?

嘗試這樣。

您需要使用moon.offsetTop計算div的頂部偏移,並且div沒有onload事件,因此您必須從腳本或body onload事件中調用Moon()函數

 function Moon(){ var moon=document.getElementById("Moon"); var yposition= parseInt(moon.offsetTop) ; var id = setInterval(frame, 10); function frame() { if (moon.offsetTop > 10) { yposition--; document.getElementById("Moon").style.top = yposition + 'px'; } else { clearInterval(id); } } } 
 #Moon{ width: 300px; height: 250px; left: 50px; top: 600px; background: transparent url("https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcQh7mGmBMJ--wS711QkCEPHHS56jV15VmESttDbVLZPSI_FsMAyTQ") no-repeat ; position: absolute; } 
 <body onload="Moon()"> <div id="Moon"></div> </body> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM