利用JS定時(shí)器實(shí)現(xiàn)元素移動(dòng)
利用JS定時(shí)器做一個(gè)元素做一個(gè)有移動(dòng)效果的方法,實(shí)現(xiàn)思路:首先聲明一個(gè)變量存放元素距離左側(cè)的邊距,然后我們?cè)诼暶饕粋€(gè)變量存放每次元素需要移動(dòng)的距離,然后再給這個(gè)方法一個(gè)完成時(shí)間就可以了。需要注意的是獲取到的值如果不是數(shù)值型的數(shù)據(jù)需要裝換,否則不能進(jìn)行判斷。再判斷一下該元素移動(dòng)到某個(gè)位置之后,步長(zhǎng)給它一個(gè)負(fù)值,該元素就會(huì)往回跑了。
大家還可以想一想元素移動(dòng)到左右側(cè)的時(shí)候如何實(shí)現(xiàn)轉(zhuǎn)身效果。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{margin: 0;padding: 0;} body{position: relative;} #box{ width: 120px;height: 120px;background: green; position: absolute;top: 100px; /* 此處可以引入一個(gè)背景圖作為移動(dòng)的目標(biāo), */ /* background: url(img/paobu_huaban.png) 0 0/100% 100%; */ } </style> </head> <body> <button type="button" id="Button">點(diǎn)我移動(dòng)</button> <div id="box" style="left: 0px;"></div> <script type="text/javascript"> var Button = document.getElementById("Button"); var box = document.getElementById("box"); // 每次移動(dòng)多少像素,step表示步長(zhǎng) var step = 5; Button.onclick = function(){ var timer = setInterval(function(){ //獲取box的left值,轉(zhuǎn)成整數(shù),一定要轉(zhuǎn)化為數(shù)值行在做運(yùn)算, // parseInt表示將獲取到的字符串轉(zhuǎn)化為字符型 var o_left = parseInt(box.style.left); //想要元素走的更快可以改變加大每次移動(dòng)的距離或者是減少完成時(shí)間也可以 //但是減少完成時(shí)間這樣的效果要好一點(diǎn) var n_left = o_left+step; //每次向右移動(dòng)10px box.style.left = n_left+"px"; if ( n_left>500) { //如果移動(dòng)的距離大于400px就往回跑 step = -5; }else if(n_left==0){ step = 5; }; },100); }; </script> </body> </html>
運(yùn)行結(jié)果如下:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
分享兩個(gè)手機(jī)訪問(wèn)pc網(wǎng)站自動(dòng)跳轉(zhuǎn)手機(jī)端網(wǎng)站代碼
這篇文章主要介紹了分享兩個(gè)手機(jī)訪問(wèn)pc網(wǎng)站自動(dòng)跳轉(zhuǎn)手機(jī)端網(wǎng)站代碼,需要的朋友可以參考下2015-01-01Webpack devServer中的 proxy 實(shí)現(xiàn)跨域的解決
這篇文章主要介紹了Webpack devServer中的 proxy 實(shí)現(xiàn)跨域的解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06JavaScript設(shè)置獲取和設(shè)置屬性的方法
這篇文章主要介紹了JavaScript設(shè)置獲取和設(shè)置屬性的方法,學(xué)會(huì)使用getAttribute、setAttribute的用法,需要的朋友可以參考下2015-03-03JavaScript setInterval()與setTimeout()計(jì)時(shí)器
這篇文章主要介紹了JavaScript setInterval()與setTimeout()計(jì)時(shí)器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12用javascript實(shí)現(xiàn)畫(huà)板的代碼
用javascript實(shí)現(xiàn)畫(huà)板的代碼...2007-09-09JavaScript字符串_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
JavaScript中的字符串就是用''或""括起來(lái)的字符表示。下面通過(guò)本文給大家介紹JavaScript字符串的相關(guān)知識(shí),感興趣的朋友一起看看吧2017-06-06常常會(huì)用到的截取字符串substr()、substring()、slice()方法詳解
javascript中給我們提供三個(gè)截取字符串的方法,分別是:slice(),substring()和substr()。下面我們對(duì)這三個(gè)函數(shù)進(jìn)行詳細(xì)說(shuō)明和比較,需要的朋友可以參考下2015-12-12javascript 支持鏈?zhǔn)秸{(diào)用的異步調(diào)用框架Async.Operation
javascript 支持鏈?zhǔn)秸{(diào)用的異步調(diào)用框架Async.Operation2009-08-08