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


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 相关文章推荐
JavaScript性能陷阱小结(附实例说明)
Dec 28 Javascript
json原理分析及实例介绍
Nov 29 Javascript
jQuery中setTimeout的几种使用方法小结
Apr 07 Javascript
JS根据年月获得当月天数的实现代码
Jul 03 Javascript
JavaScript中的数学运算介绍
Dec 29 Javascript
js自定义回调函数
Dec 13 Javascript
jQuery Mobile框架中的表单组件基础使用教程
May 17 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
Dec 18 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
Oct 17 Javascript
对angular 实时更新模板视图的方法$apply详解
Oct 09 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
Apr 13 Javascript
ssm+vue前后端分离框架整合实现(附源码)
Jul 08 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下获取http状态的实现代码
2014/05/09 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
javascript中常用编程知识
2013/04/08 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
2015/06/06 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
vue.js中created方法作用
2018/03/30 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
vue中template的三种写法示例
2020/10/21 Javascript
Python解析json文件相关知识学习
2016/03/01 Python
简单谈谈python中的多进程
2016/11/06 Python
python os用法总结
2018/06/08 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
澳大利亚床上用品、浴巾和家居用品购物网站:Bambury
2020/04/16 全球购物
应届生骨科医生求职信
2013/10/31 职场文书
企划经理的岗位职责
2013/11/17 职场文书
体育专业个人求职信范文
2013/12/27 职场文书
人事专员的岗位职责
2014/03/01 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
文明生主要事迹
2014/05/25 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
暑假社会实践证明格式
2014/10/28 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
学习委员竞选稿
2015/11/20 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
详解Python为什么不用设计模式
2021/06/24 Python
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP