溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

實(shí)現(xiàn)圖片抖動(dòng)效果的方法

發(fā)布時(shí)間:2020-08-20 09:48:30 來(lái)源:億速云 閱讀:590 作者:小新 欄目:web開(kāi)發(fā)

這篇文章給大家分享的是有關(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ò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI