微信小程序?qū)崿F(xiàn)文字跑馬燈
前言
要實(shí)現(xiàn)跑馬燈主要就是獲得判斷開始定界和結(jié)束定界, 1.9.3新增的wxml操作接口 就可以拿到節(jié)點(diǎn)長(zhǎng)寬等屬性,當(dāng)然你也可以直接用 文字?jǐn)?shù)量 * 文字大小(注意字體的單位px,rpx)。
效果圖
短字
長(zhǎng)字
wxml
<view class="content"> <text class="every" decode="{{true}}" style="right:{{announZf}}{{announNum}}px">{{announ}}</text> </view>
js
我這里用的是wepy寫的,湊合著看吧
export default class ShopIndex extends wepy.page { config = { navigationBarTitleText : '首頁(yè)', } data = { // 公告內(nèi)容 announ : '超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度超長(zhǎng)度v', announNum : 0, announy : 280, announZf : '-' } onLoad() { let self = this; var query = wepy.createSelectorQuery(); query.select('.content').boundingClientRect(ContentRes => { var query = wepy.createSelectorQuery(); query.select('.every').boundingClientRect(TextRes => { //加上一百是因?yàn)榉乐乖跉w零時(shí)出現(xiàn)閃爍的情況 let maxContentWidth = ContentRes.width + 100, maxTextWidth = TextRes.width; //初始化 self.announNum = TextRes.width self.$apply(); //定時(shí)器 setInterval(()=>{ if(self.announZf == '-') { if(self.announNum <= 0) { self.announZf = '' } else { self.announNum -= 1 } } else { if(self.announNum > (maxContentWidth)) { //歸位 self.announZf = '-' self.announNum = maxTextWidth } else { self.announNum += 1 } } self.$apply(); },5) }).exec(); }).exec(); } }
-----2018-12-24 ----
使用的時(shí)候需要注意 setInterval 的性能問(wèn)題, 不用的時(shí)候或者不顯示的時(shí)候?qū)⑵渫V?,否則會(huì)像作者一樣給自己挖坑。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Javascript中浮點(diǎn)數(shù)相乘的一個(gè)解決方法
這篇文章主要介紹了Javascript中浮點(diǎn)數(shù)相乘的一個(gè)解決方法,需要的朋友可以參考下2014-06-06JavaScript(js)處理的HTML事件、鍵盤事件、鼠標(biāo)事件簡(jiǎn)單示例
這篇文章主要介紹了JavaScript(js)處理的HTML事件、鍵盤事件、鼠標(biāo)事件,結(jié)合實(shí)例形式分析了JavaScript針對(duì)HTML事件、鍵盤事件及鼠標(biāo)事件的簡(jiǎn)單處理方法,需要的朋友可以參考下2019-11-11javascript for循環(huán)從入門到偏門(效率優(yōu)化+奇特用法)
for循環(huán)是非?;A(chǔ)的javascript知識(shí),但由于JS太靈活了,所以可能出現(xiàn)一些讓初學(xué)者崩潰的寫法。我決定由淺入深的解釋一下for循環(huán),算是給比我還新手的新手解惑吧,少走彎路2012-08-08JS+CSS相對(duì)定位實(shí)現(xiàn)的下拉菜單
這篇文章主要介紹了JS+CSS相對(duì)定位實(shí)現(xiàn)的下拉菜單,涉及JavaScript結(jié)合css的定位技術(shù)實(shí)現(xiàn)下拉菜單的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10js基于canvas實(shí)現(xiàn)時(shí)鐘組件
這篇文章主要介紹了js基于canvas實(shí)現(xiàn)時(shí)鐘組件的方法,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下2021-02-02js 分頁(yè)全選或反選標(biāo)識(shí)實(shí)現(xiàn)代碼
分頁(yè)全選或反選標(biāo)識(shí) 對(duì)多選按鈕操作。 批量全選添加、批量移除。 行單選添加、移除。 分頁(yè)之后(全選或不選)狀態(tài)標(biāo)識(shí)依然存在2011-08-08JavaScript躲避行星游戲?qū)崿F(xiàn)全程
本文將使用 canvas 創(chuàng)建一個(gè)躲避小行星游戲。另外將重點(diǎn)介紹的兩個(gè)方面是:如何使用 JavaScript 來(lái)檢測(cè)鍵盤輸入,以及如何在游戲中使用和處理 HTML5 音頻。希望你能夠喜歡2022-08-08