vue實(shí)現(xiàn)文字滾動(dòng)效果
本文實(shí)例為大家分享了vue實(shí)現(xiàn)文字滾動(dòng)效果的具體代碼,供大家參考,具體內(nèi)容如下
項(xiàng)目需求:系統(tǒng)公告,要從右忘左循環(huán)播放的牛皮廣告效果。
實(shí)現(xiàn):
方案一:使用定時(shí)器和CSS3的過(guò)渡屬性來(lái)實(shí)現(xiàn)。
<template>
? <div class="notice-card-wrapper">
? ? ? ? <div id="message-wrap" ref="out" class="message">
? ? ? ? ? <div id="con1" ref="con1" :class="{anim:animate==true}" style="margin-left: 2500px;">
? ? ? ? ? ? <span v-html="notice"></span>
? ? ? ? ? </div>
? ? ? ? </div>
? </div>
</template>關(guān)鍵標(biāo)簽ref='con1和內(nèi)部的span,con1上面有一個(gè)anim樣式,根據(jù)animate變量的變化來(lái)動(dòng)態(tài)變化。
注意,我這里給了一個(gè)margin-left:2500px的初始位置
data() {
? ? return {
? ? ? animate: true,
? ? ? notice: '',
? ? ? intervalId: null // 定時(shí)器標(biāo)識(shí)
? ? }
? },定義需要的屬性變量
mounted() {
? ? this.scroll() // 動(dòng)畫(huà)先執(zhí)行一次
? ? this.intervalId = setInterval(this.scroll, 16000) // 間隔時(shí)間后重復(fù)執(zhí)行
? },
? updated() {
? },
? destroyed() {
? ? clearInterval(this.intervalId) // 清除定時(shí)器
? },
? ? methods: {
? ? // 異步ajax獲取公告內(nèi)容,略過(guò)
? ? handleFetchNotice() {
? ? ? fetchNotice().then(res => {
? ? ? ? this.notice = res.data.notice
? ? ? }).catch(err => {
? ? ? ? console.log(err)
? ? ? })
? ? },
? ? // 定義動(dòng)畫(huà)
? ? scroll() {
? ? ? this.animate = true
? ? ? const con1 = this.$refs.con1
? ? ? setTimeout(() => {
? ? ? ? con1.style.marginLeft = '-500PX'
? ? ? }, 500)
? ? ? setTimeout(() => {
? ? ? ? con1.style.marginLeft = '2500px'
? ? ? ? this.animate = false
? ? ? }, 15000)
? ? }
? }說(shuō)明:執(zhí)行動(dòng)畫(huà)函數(shù),500ms后將refs.con1的margin-left值改為-500px,這個(gè)時(shí)候標(biāo)簽的過(guò)渡屬性是ture,會(huì)動(dòng)畫(huà)顯示這個(gè)變化過(guò)程。15000ms后,將margin-left值回到初始狀態(tài),過(guò)渡屬性修改為false,動(dòng)畫(huà)切斷。
最后一步,就算在css中定義過(guò)渡樣式
<style lang="scss">
.anim{
? transition: all 15s linear;
}
</style>margin-left有2500px改為-500px的過(guò)程,過(guò)渡動(dòng)畫(huà)線性執(zhí)行15s。
然后,定時(shí)器16000毫秒后,重復(fù)執(zhí)行。
已修改為css3動(dòng)畫(huà),簡(jiǎn)潔很多
<template>
? <div class="notice-card-wrapper">
? ? <div class="header">
? ? ? <div class="title">
? ? ? ? <!-- 系統(tǒng)公告 -->
? ? ? ? <div class="message">
? ? ? ? ? <div class="inner-container">
? ? ? ? ? ? <span v-html="notice"></span>
? ? ? ? ? </div>
? ? ? ? </div>
? ? ? </div>
? ? </div>
? </div>
</template>
<script>
export default {
? name: 'SystemNotice',
? components: {
? },
? data() {
? ? return {
? ? ? notice: '我是廣播文字內(nèi)容,哈哈哈哈,你習(xí)慣不行啊,我頁(yè)不知道啊啊啊啊啊'
? ? }
? },
? computed: {
? },
? created() {
? },
? methods: {
? }
}
</script>
<style lang="scss" scoped>
.notice-card-wrapper {
? .inner-container {
? ? margin-left: 100%; // 把文字弄出可見(jiàn)區(qū)域
? ? width: 200%;
? ? animation: myMove 30s linear infinite; // 重點(diǎn),定義動(dòng)畫(huà)
? ? animation-fill-mode: forwards;
? }
? ? /*文字無(wú)縫滾動(dòng)*/
? @keyframes myMove {
? ? 0% {
? ? ? transform: translateX(0);
? ? }
? ? 100% {
? ? ? transform: translateX(-2500px);
? ? }
? }
? }
}
</style>以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue實(shí)現(xiàn)列表無(wú)縫滾動(dòng)效果
- vue實(shí)現(xiàn)列表垂直無(wú)縫滾動(dòng)
- vue3實(shí)現(xiàn)CSS無(wú)限無(wú)縫滾動(dòng)效果
- vue實(shí)現(xiàn)列表無(wú)縫滾動(dòng)
- 在Vue中使用CSS3實(shí)現(xiàn)內(nèi)容無(wú)縫滾動(dòng)的示例代碼
- 詳解vue 自定義marquee無(wú)縫滾動(dòng)組件
- 基于vue.js無(wú)縫滾動(dòng)效果
- vue的無(wú)縫滾動(dòng)組件vue-seamless-scroll實(shí)例
- vue實(shí)現(xiàn)消息的無(wú)縫滾動(dòng)效果的示例代碼
- vue實(shí)現(xiàn)簡(jiǎn)單無(wú)縫滾動(dòng)效果
相關(guān)文章
使用Element進(jìn)行前端開(kāi)發(fā)的詳細(xì)圖文教程
眾所周知Element是一套Vue.js后臺(tái)組件庫(kù),它能夠幫助你更輕松更快速地開(kāi)發(fā)后臺(tái)項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于使用Element進(jìn)行前端開(kāi)發(fā)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
基于Vue el-autocomplete 實(shí)現(xiàn)類似百度搜索框功能
本文通過(guò)代碼給大家介紹了Vue el-autocomplete 實(shí)現(xiàn)類似百度搜索框功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
vue+vuex+axios+echarts畫(huà)一個(gè)動(dòng)態(tài)更新的中國(guó)地圖的方法
本篇文章主要介紹了vue+vuex+axios+echarts畫(huà)一個(gè)動(dòng)態(tài)更新的中國(guó)地圖的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
vue中data數(shù)據(jù)之間如何賦值問(wèn)題
這篇文章主要介紹了vue中data數(shù)據(jù)之間如何賦值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2022-09-09
vue 輸入框輸入任意內(nèi)容返回?cái)?shù)字的實(shí)現(xiàn)
本文主要介紹了vue 輸入框輸入任意內(nèi)容返回?cái)?shù)字的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03
Vue Router 配合 keep-alive 不生效的問(wèn)題及解決方案
我在 app.vue 中使用了 router-view 標(biāo)簽,來(lái)展示 layout 和其他一級(jí)路由,然后在 layout 下的 main 區(qū)域使用了一個(gè) router-view 來(lái)展示通過(guò)菜單欄切換的子路由,下面給大家介紹Vue Router 配合 keep-alive 不生效的問(wèn)題及解決方案,感興趣的朋友一起看看吧2024-01-01
vue-router history模式服務(wù)器端配置過(guò)程記錄
vue路由有hash和history兩種模式,這篇文章主要給大家介紹了關(guān)于vue-router history模式服務(wù)器端配置的相關(guān)資料,需要的朋友可以參考下2021-06-06

