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


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 相关文章推荐
jQuery统计上传文件大小的方法
Jan 24 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
Oct 08 Javascript
JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
May 19 Javascript
AngularJS实现单一页面内设置跳转路由的方法
Jun 28 Javascript
将angular.js项目整合到.net mvc中的方法详解
Jun 29 Javascript
Node.js笔记之process模块解读
May 31 Javascript
在Vue中获取组件声明时的name属性方法
Sep 12 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
Feb 13 Javascript
前端js中的事件循环eventloop机制详解
May 15 Javascript
vue实现标签云效果的方法详解
Aug 28 Javascript
解决ele ui 表格表头太长问题的实现
Nov 13 Javascript
JS中FileReader类实现文件上传及时预览功能
Mar 27 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获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
2017/04/10 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
PHP XML Expat解析器知识点总结
2019/02/15 PHP
javascript对talbe进行动态添加、删除、验证实现代码
2012/03/29 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
用Javascript获取页面元素的具体位置
2013/12/09 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
详解vue中组件参数
2018/07/09 Javascript
vue axios数据请求及vue中使用axios的方法
2018/09/10 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
深入浅析vue-cli@3.0 使用及配置说明
2019/05/08 Javascript
微信小程序云开发之模拟后台增删改查
2019/05/16 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
[56:41]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs OG
2018/04/01 DOTA
python 连接各类主流数据库的实例代码
2018/01/30 Python
对Python实现简单的API接口实例讲解
2018/12/10 Python
python实现抖音点赞功能
2019/04/07 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
Python实现Linux监控的方法
2019/05/16 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python3 mmh3安装及使用方法
2019/10/09 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
Python数组并集交集补集代码实例
2020/02/18 Python
Python中有几个关键字
2020/06/04 Python
白色公司:The White Company
2017/10/11 全球购物
春节联欢晚会主持词范文
2014/03/24 职场文书
宣传活动总结范文
2014/07/01 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书