真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何用純CSS方式實(shí)現(xiàn)CSS動(dòng)畫的暫停與播放效果

如何用純CSS方式實(shí)現(xiàn)CSS動(dòng)畫的暫停與播放效果?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

創(chuàng)新互聯(lián)公司為您提適合企業(yè)的網(wǎng)站設(shè)計(jì)?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強(qiáng)的網(wǎng)絡(luò)競(jìng)爭(zhēng)力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計(jì)及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到成都網(wǎng)站制作、成都網(wǎng)站建設(shè), 我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。

使用純 CSS 的方法,暫?;虿シ?CSS 動(dòng)畫。是不是看起來(lái)應(yīng)該是不可能的實(shí)現(xiàn)的;或者就算可以實(shí)現(xiàn),也是一個(gè)很麻煩的實(shí)現(xiàn)方法,需要用大量的css樣式才可以實(shí)現(xiàn)。其實(shí)不然,在 CSS3 animation 中,就有這樣一個(gè)屬性可以做到暫停、播放動(dòng)畫。

animation-play-state屬性

 animation-play-state: paused | running;

animation-play-state: 屬性定義一個(gè)動(dòng)畫是否運(yùn)行或者暫停??梢酝ㄟ^(guò)查詢它來(lái)確定動(dòng)畫是否正在運(yùn)行。另外,它的值可以被設(shè)置為暫停和恢復(fù)的動(dòng)畫的重放。

如果借助 Javascript,我們可以實(shí)現(xiàn)控制 CSS 動(dòng)畫的運(yùn)行和播放,下面列出部分關(guān)鍵代碼:

html代碼:

stop

css代碼:

.animation {
    width: 100px;
    height: 100px;
    margin: 50px auto;
    background: deeppink;
    animation: move 2s linear infinite alternate;
}

@keyframes move {
    0% {
        transform: translate(-100px, 0);
    }
    100% {
        transform: translate(100px, 0);
    }
}

.btn {
    width: 50px;
    margin: 10px auto;
    text-align: center;
    border:1px solid #ddd;
    padding: 10px;
    border-radius: 5px;
    cursor:pointer;
    
    &:hover {
        background: #ddd;
        color: #333;
    }
    
    &:active {
        background: #aaa;
    }
}

js代碼:

document.querySelector('.btn').addEventListener('click', function() {
    let btn = document.querySelector('.btn');
    let elem = document.querySelector('.animation');
    let state = elem.style['animationPlayState'];
    
    if(state === 'paused') {
        elem.style['animationPlayState'] = 'running';
        btn.innerText = 'stop';
    } else {
        elem.style['animationPlayState'] = 'paused';
        btn.innerText = 'play';
    }
    
});

效果圖(播放時(shí)和停止播放后):

如何用純CSS方式實(shí)現(xiàn)CSS動(dòng)畫的暫停與播放效果如何用純CSS方式實(shí)現(xiàn)CSS動(dòng)畫的暫停與播放效果

純 CSS 實(shí)現(xiàn)

下面我們探討下,使用純 CSS 的方式能否實(shí)現(xiàn)。

hover 偽類實(shí)現(xiàn)

使用 hover 偽類,在鼠標(biāo)懸停在按鈕上面時(shí),控制動(dòng)畫樣式的暫停。

關(guān)鍵代碼如下:

html代碼:

stop

css代碼:

.animation {
    width: 100px;
    height: 100px;
    margin: 50px auto;
    background: deeppink;
    animation: move 2s linear infinite alternate;
}

input {
    display: none;
}

@keyframes move {
    0% {
        transform: translate(-100px, 0);
    }
    100% {
        transform: translate(100px, 0);
    }
}

.btn {
    width: 50px;
    margin: 10px auto;
    text-align: center;
    border:1px solid #ddd;
    padding: 10px;
    border-radius: 5px;
    cursor:pointer;
    
    &:hover {
        background: #ddd;
        color: #333;
    }
    
    &:active {
        background: #aaa;
    }
}

.stop:hover ~ .animation {
    animation-play-state: paused;
}

效果圖:

如何用純CSS方式實(shí)現(xiàn)CSS動(dòng)畫的暫停與播放效果如何用純CSS方式實(shí)現(xiàn)CSS動(dòng)畫的暫停與播放效果

當(dāng)然,這個(gè)方法不夠智能,如果釋放鼠標(biāo)的自由,點(diǎn)擊一下暫停、再點(diǎn)擊一下播放就好了。還有其他方法嗎?

checked 偽類實(shí)現(xiàn)

之前的文章《有趣的 CSS 題目(8):純CSS的導(dǎo)航欄Tab切換方案》也談過(guò),使用 radio 標(biāo)簽的 checked 偽類,加上 實(shí)現(xiàn)純 CSS 捕獲點(diǎn)擊事情。

并且利用被點(diǎn)擊的元素可以控制一些 CSS 樣式。實(shí)現(xiàn)如下:

html代碼:




css代碼:

.animation {
    width: 100px;
    height: 100px;
    margin: 50px auto;
    background: deeppink;
    animation: move 2s linear infinite alternate;
}

input {
    display: none;
}

@keyframes move {
    0% {
        transform: translate(-100px, 0);
    }
    100% {
        transform: translate(100px, 0);
    }
}

.btn {
    width: 50px;
    margin: 10px auto;
    text-align: center;
    border:1px solid #ddd;
    padding: 10px;
    border-radius: 5px;
    cursor:pointer;
    
    &:hover {
        background: #ddd;
        color: #333;
    }
    
    &:active {
        background: #aaa;
    }
}

#stop:checked ~ .animation {
    animation-play-state: paused;
}

#play:checked ~ .animation {
    animation-play-state: running;
}

我們希望當(dāng) #stop 和 #play 兩個(gè) radio 被點(diǎn)擊時(shí),給 .animation 元素分別賦予 animation-play-state: paused 或是 animation-play-state: running 。而且二者只能生效其一,所以需要給兩個(gè) radio 標(biāo)簽賦予相同的 name 屬性。

效果圖:

如何用純CSS方式實(shí)現(xiàn)CSS動(dòng)畫的暫停與播放效果如何用純CSS方式實(shí)現(xiàn)CSS動(dòng)畫的暫停與播放效果

上面的示例中,實(shí)現(xiàn)了純 CSS 方式實(shí)現(xiàn) CSS 動(dòng)畫的暫停與播放。

當(dāng)然,還有一些其他方法,例如 radio 替換成 checkbox ,或者使用 :target 偽類選擇器也能實(shí)現(xiàn)上面同樣的效果,感興趣的可以嘗試一下。

關(guān)于如何用純CSS方式實(shí)現(xiàn)CSS動(dòng)畫的暫停與播放效果問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。


文章標(biāo)題:如何用純CSS方式實(shí)現(xiàn)CSS動(dòng)畫的暫停與播放效果
標(biāo)題URL:http://weahome.cn/article/pspcjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部