原生小程序封装跑马灯效果


Posted in Javascript onOctober 21, 2020

本文实例为大家分享了小程序封装跑马灯效果的具体代码,供大家参考,具体内容如下

原生小程序封装跑马灯效果

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: '标题' , // 属性初始值(可选),如果未指定则会根据类型选择一个
  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", //背景色
 }
 },

 /**
 * 生命周期函数--监听页面加载
 */
 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()
 },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
bgsound 背景音乐 的一些常用方法及特殊用法小结
May 11 Javascript
JS函数的定义与调用方法推荐
May 12 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
Dec 17 Javascript
原生js实现可爱糖果数字时间特效
Dec 30 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
Apr 01 jQuery
vue树形结构获取键值的方法示例
Jun 21 Javascript
JavaScript笛卡尔积超简单实现算法示例
Jul 30 Javascript
vue中rem的配置的方法示例
Aug 30 Javascript
JavaScript canvas实现跟随鼠标事件
Feb 10 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
Aug 31 Javascript
夯基础之手撕javascript继承详解
Nov 09 Javascript
Vue基于localStorage存储信息代码实例
Nov 16 Javascript
uniapp实现横向滚动选择日期
Oct 21 #Javascript
实现vuex原理的示例
Oct 21 #Javascript
详解JavaScript类型判断的四种方法
Oct 21 #Javascript
node.js如何根据URL返回指定的图片详解
Oct 21 #Javascript
vue中template的三种写法示例
Oct 21 #Javascript
Vue使用v-viewer实现图片预览
Oct 21 #Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
Oct 20 #Javascript
You might like
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
web网页按比例显示图片实现原理及js代码
2013/08/09 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
js实现碰撞检测
2021/01/29 Javascript
[00:35]可解锁地面特效
2018/12/20 DOTA
Python生成pdf文件的方法
2014/08/04 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
简单实现Python爬取网络图片
2018/04/01 Python
python基于递归解决背包问题详解
2019/07/03 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
高级人员简历的自我评价分享
2013/11/03 职场文书
实习生自我鉴定范文
2013/12/05 职场文书
农村婚庆司仪主持词
2014/03/15 职场文书
食品安全承诺书
2014/05/22 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/09/30 职场文书
2014公司年终工作总结
2014/12/19 职场文书
2015年社区环境卫生工作总结
2015/04/21 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
基于python实现银行管理系统
2021/04/20 Python
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
Python实现制作销售数据可视化看板详解
2021/11/27 Python
使用scrapy实现增量式爬取方式
2022/06/21 Python