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