您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)實(shí)現(xiàn)圖片抖動(dòng)效果的方法的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
需求:點(diǎn)擊圖片時(shí),圖片會(huì)左右抖動(dòng),也可以上下抖動(dòng)。
具體代碼如下:
html:
<img src="./img/19.jpg" alt="" id="img1">
css:
img { position: absolute; top: 200px; left: 300px; }
js:
<script src="doMove.js"></script> <script> window.onload = function(){ var img1 = document.getElementById('img1'); img1.onclick = function(){ // 先獲得img1的原來(lái)left值,在此基礎(chǔ)上進(jìn)行抖動(dòng);parseInt()是把300px的單位去掉只留數(shù)字 var pos = parseInt(getStyle(img1,'left')); var arr = [];//20,-20,18,-18,16,-16,...存放抖動(dòng)的頻率 var timer = null;//開(kāi)啟定時(shí)器 var num = 0;//一般只要有數(shù)組,那么必定有數(shù)字跟著變化;數(shù)組的第0個(gè),第1個(gè)... for(var i =20;i>0;i-=2){//左右抖動(dòng)的幅度第一次為20px,然后減2 arr.push(i,-i); } arr.push(0); // alert(arr);//測(cè)試一下 // 有抖動(dòng)的頻率之后,要開(kāi)啟定時(shí)器讓它進(jìn)行抖動(dòng) clearInterval(timer);//開(kāi)啟定時(shí)器之前要先把定時(shí)器關(guān)閉,防止連續(xù)多次點(diǎn)擊 timer = setInterval(function(){ img1.style.left = pos + arr[num] + 'px';//原來(lái)的位置pos,加上數(shù)組中每一個(gè)數(shù)字 num++; if(num === arr.length){//如果數(shù)字等于數(shù)組的長(zhǎng)度(就是全部抖完了),關(guān)閉定時(shí)器 clearInterval(timer); } },50); } } </script>
說(shuō)明:
1、要先引入我們?cè)瓉?lái)封裝好的動(dòng)畫(huà)函數(shù)doMove.js,getStyle()函數(shù)就是這個(gè)函數(shù)里面的函數(shù);
2、parseInt( )是把300px的單位去掉只留數(shù)字300;
3、上下抖動(dòng),只要把left改為top就可以。
感謝各位的閱讀!關(guān)于實(shí)現(xiàn)圖片抖動(dòng)效果的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。