js製造運動的假象-------Day63

來源:互聯網
上載者:User

標籤:javascript   移動   

這裡用的這個名稱可能不合適,不過暫時我也沒有想起比較對應的名字來,那就這樣先寫吧。

首先,我先表達下我想實現的是什麼效果:

想必大家都玩過,至少見過很多小遊戲,比方說超級瑪麗,比方說flappy bird,在裡面總看到馬里奧或者小鳥就一直向前走啊向前飛啊,然後飛過了大河,跳過了深坑,最終到達終點,而在這個記錄中我所關注的只是背景的變化,就像下面的圖示:


最終它到了城堡中,而我們的螢幕中又不會顯示捲軸,它是如何運動的呢?

其實,這個功能應該是個比較基礎的功能了,只是之前不夠敏感,今天從公交車上看著窗外的風景一晃而過,我就突然想起了這麼一個功能,然後來實現了下,果然有效,當背景不斷變化的時候,果然運動感又強了很多。

這裡來簡單介紹下實現的關鍵點:

1、足夠長的div;

2、當div超出螢幕長度的時候,就會出現橫向捲軸,而我們則將捲軸隱藏;

3、當運動對象向右運動的時候,背景div的marginLeft也從0px不斷減小,從而顯示背景div的不同部分;

我不知道在各個遊戲應用中是不是這樣解決的,但是我這樣做的時候確實是實現了這個效果,這樣來上一下代碼,來細說下(圖做的很粗糙,只是為了實現效果):

html語言:

<body style="overflow:hidden"><div style="width:2000px;height:700px;background:red;" id="back">//2000px遠超出螢幕寬度了<div style="width:300px;margin-left:600px;height:700px;background:yellow;float:left;"></div>//不同背景色在其中顯示,明確區分所在div的不同位置<div style="width:300px;margin-left:600px;height:700px;background:blue;float:left;"></div></div><div style="position:absolute;z-index:10;background:#ccc;width:100px;height:100px;left:10px;top:300px;" id="move">//找一個移動的對象來類比效果<input type="button" value="go" style="width:100px;height:100px;" onclick="go"></div></body>
css部分:

<style type="text/css">body{margin:0px;padding:0px;}</style>
javascript部分:

<script type="text/javascript">window.onload=function go(){var move=document.getElementById("move");var back=document.getElementById("back");//擷取兩個div對象var ss=setInterval(function(){var now=parseInt(back.offsetLeft);move.style.left=move.offsetLeft+1+"px";back.style.marginLeft=now-1+"px";//這是今天需要先查的關鍵點margin-left在這裡可以寫成marginLeft,這裡的Left注意大寫L},10);}</script>
這樣簡單實現了所需要的效果,這次是完全自己根據自己的想象做出的實現,雖然寫的很亂,但是這會在看到代碼效果的時候還是特別開心,因為這是自己思考的結晶啊,不是分析別人代碼的結果,開森啊,哈哈,神一樣的男人,加油加油...


今天交鑰匙了,去看了下房子,比現在租的要好多了,周末搬家,哎,沒有買車,在城市裡搬家感覺好淒慘,挪來挪去的都不方便,也真苦了媳婦了,陪我東跑西顛的,我欠她的實在太多了。真希望可以快點交房,就不用到處找房子租住了....





聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.