原生小程序封裝跑馬燈效果
更新時間:2020年10月21日 10:30:26 作者:Lucky伯爵
這篇文章主要為大家詳細介紹了原生小程序封裝跑馬燈效果,由多條銜接改動得到,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了小程序封裝跑馬燈效果的具體代碼,供大家參考,具體內(nèi)容如下

Marquee.wxml
<view class="marquee_container " style="background:{{broadcast_arr.back_color}};font-size:32rpx;">
<view class='marquee_text' style='--marqueeWidth--:{{-broadcast_arr.width_mal}}px;--speed--:{{broadcast_arr.time}}s;width:{{broadcast_arr.width_mal}}px;'>
<block wx:for="{{data}}" wx:key='index'>
<view style='color:{{broadcast_arr.text_color}};margin-left:{{index!=0?item.starspos*2:0}}rpx;'>
{{item.img}}
</view>
</block>
</view>
</view>
Marquee.wxss
@keyframes around {
from {
margin-left: 100%;
}
to {
margin-left: var(--marqueeWidth--);
}
}
.marquee_container {
/* background-color: #0099FF; */
padding: 12rpx 0;
position: relative;
width: 100%;
/* height: 50rpx; */
}
.marquee_text {
display: flex;
white-space: nowrap;
animation-name: around;
animation-duration: var(--speed--);
animation-iteration-count: infinite;
animation-timing-function: linear;
line-height: 50rpx;
}
.marquee_tit {
height: 50rpx;
line-height: 50rpx;
position: absolute;
padding-left: 22rpx;
}
Marquee.js
Component({
options: {
multipleSlots: true // 在組件定義時的選項中啟用多slot支持
},
properties: {
title: { // 屬性名
type: String, // 類型(必填),目前接受的類型包括:String, Number, Boolean, Object, Array, null(表示任意類型)
value: '標題' , // 屬性初始值(可選),如果未指定則會根據(jù)類型選擇一個
observer: function (newVal) {
this.setData({
'data[0].img': newVal
})
this.run()
}
}
},
data: {
data: [
{
img: "",
}
],
broadcast_arr: {
speed: 5, //滾動速度,每秒5個字
font_size: "16", //字體大小(px)
text_color: "#de8c17", //字體顏色
back_color: "#fffbe8", //背景色
}
},
/**
* 生命周期函數(shù)--監(jiān)聽頁面加載
*/
methods: {
run() {
let ititdata = this.data.data,
assist = this.data.broadcast_arr,
this_width = 0,
spacing = 0,
speed = (this.data.broadcast_arr.speed * this.data.broadcast_arr.font_size); //m每秒行走的距離
for (let i in ititdata) {
ititdata[i].starspos = wx.getSystemInfoSync().windowWidth; //以取屏幕寬度為間距
this_width += (ititdata[i].img.length-12) * this.data.broadcast_arr.font_size;
if (i != ititdata.length - 1) {
spacing += ititdata[i].starspos
}
}
let total_length = this_width + spacing;//總長
assist.time = total_length / speed; /**滾動時間*/
assist.width_mal = total_length;
this.setData({
broadcast_arr: assist,
data: ititdata
})
}
}
})
index引入—index.json
{
"usingComponents": {
"marquee":"/components/Marquee/Marquee"
},
index.wxml
<!--跑馬燈 Linyufan.com--> <marquee id='marquee' title='江龍:每日惠自提店鋪特價啦~店鋪特價啦~店鋪特價啦~'></marquee> <!--跑馬燈-->
index.js
onReady:function(){
this.marquee=this.selectComponent('#marquee')
this.marquee.run()
},
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
javascript與CSS復習(《精通javascript》)
js和css結合來產(chǎn)生醒目的交互效果,我們可以快速的訪問元素自身的樣式屬性2010-06-06
詳解JavaScript的內(nèi)存空間、賦值和深淺拷貝
這篇文章主要介紹了JavaScript的內(nèi)存空間、賦值和深淺拷貝,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
JS 實現(xiàn)Table相同行的單元格自動合并示例代碼
Table相同行的單元格自動合并,使用js來實現(xiàn)此效果,具體代碼下,感興趣的朋友可以參考下2013-08-08
獲取網(wǎng)站跟路徑的javascript代碼(站點及虛擬目錄)
js獲取網(wǎng)站根路徑(站點及虛擬目錄) ,需要的朋友可以參考下。2009-10-10
使用JS組件實現(xiàn)帶ToolTip驗證框的實例代碼
這篇文章主要介紹了使用JS組件實現(xiàn)帶ToolTip驗證框的實例代碼,需要的朋友可以參考下2017-08-08

