css3實(shí)現(xiàn)動(dòng)態(tài)滾動(dòng)播放列表功能
發(fā)布時(shí)間:2024-09-11 17:02:51 作者:不一樣又怎樣
我要評(píng)論

在Web開(kāi)發(fā)中,動(dòng)態(tài)滾動(dòng)播放列表能夠提升用戶(hù)體驗(yàn),使內(nèi)容展示更加生動(dòng)有趣,本文介紹了如何僅使用CSS3實(shí)現(xiàn)一個(gè)基礎(chǔ)的循環(huán)播放列表,其中關(guān)鍵技術(shù)包括@keyframes規(guī)則和animation相關(guān)屬性,感興趣的朋友一起看看吧
需要自動(dòng)滾動(dòng)循環(huán)播放的列表,使用純CSS實(shí)現(xiàn)基礎(chǔ)循環(huán)功能
.messages animation-name carousel animation-timing-function linear animation-iteration-count infinite .message-item cursor pointer margin-top 10px &.stopPlay animation-play-state paused /** CSS3 animation-play-state 屬性 值為paused時(shí)暫停動(dòng)畫(huà),為running時(shí)繼續(xù)動(dòng)畫(huà) */ @keyframes carousel { 0% { transform: translateY(0%) } 100% { transform: translateY(-50%) } }
完整代碼
<template> <div> <div class="top-line"> <div class="box-title"> <span class="title">XXXX專(zhuān)題圖</span> </div> </div> <div class="scroll-box"> <ul class="messages" @mouseover="stopAnim" @mouseout="runAnim" v-if="list.length" :style="{ animationDuration: animationDuration }" :class="{ stopPlay: animationPlayState }"> <li class="message-item" v-for="(item, index) in list" :key="index" @click="toDetail(item)"> <div class="message-top"> <span class="message-title">{{ item.name }}</span> <span class="message-time">{{ item.startDate }}</span> </div> <p class="message-content">{{ item.content }}</p> </li> </ul> <div class="none" v-else> 暫無(wú)內(nèi)容 </div> </div> </div> </template>
<script> import test11List from '@/assets/test11List' export default { data() { return { animationDuration: '', animationPlayState: false, list: test11List.list, category: '' }; }, mounted() { this.getData() }, methods: { getData() { let data = this.list if (data.length <= 2) { this.animationPlayState = true this.animationDuration = 2 + 's'//動(dòng)畫(huà)持續(xù)時(shí)間 } else { // 跑馬燈動(dòng)畫(huà) this.animationDuration = data.length * 2 + 's' this.list = this.list.concat(this.list) } }, stopAnim() {//鼠標(biāo)移入暫停動(dòng)畫(huà) this.animationPlayState = true }, runAnim() {//鼠標(biāo)移除繼續(xù)動(dòng)畫(huà) if (this.list.length > 2) { this.animationPlayState = false } } }, }; </script>
<style lang="stylus" scoped> *{ margin: 0 padding: 0 } ul{ list-style: none } .scroll-box{ width 100% height 800px overflow hidden border 2px solid red } .box-title line-height 34px font-size 16px background: blue color: #fff opacity 1 .messages animation-name carousel animation-timing-function linear animation-iteration-count infinite .message-item cursor pointer margin-top 10px &.stopPlay animation-play-state paused /** CSS3 animation-play-state 屬性 值為paused時(shí)暫停動(dòng)畫(huà),為running時(shí)繼續(xù)動(dòng)畫(huà) */ .none text-align center line-height 537px color #fff @keyframes carousel { 0% { transform: translateY(0%) } 100% { transform: translateY(-50%) } } </style>
到此這篇關(guān)于css3實(shí)現(xiàn)動(dòng)態(tài)滾動(dòng)播放列表的文章就介紹到這了,更多相關(guān)css3滾動(dòng)播放列表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
CSS3動(dòng)畫(huà)之利用requestAnimationFrame觸發(fā)重新播放功能
這篇文章主要介紹了利用requestAnimationFrame重新播放(觸發(fā))CSS3動(dòng)畫(huà),代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-11