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


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 相关文章推荐
JS日历 推荐
Dec 03 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
Nov 09 Javascript
JavaScript中json使用自己总结
Aug 13 Javascript
JavaScript类属性的访问方式详解
Feb 11 Javascript
jquery默认校验规则整理
Mar 24 Javascript
javascript闭包的理解
Apr 01 Javascript
JS鼠标拖拽实例分析
Nov 23 Javascript
javascript验证内容为数字以及长度为10的简单实例
Aug 20 Javascript
Node.js使用MySQL连接池的方法实例
Feb 11 Javascript
微信小程序如何实现精确的日期时间选择器
Jan 21 Javascript
jQuery实现飞机大战小游戏
Jul 05 jQuery
微信小程序APP页面的之间的相互传递参数以及自定义组件
Apr 19 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
PHP4.04简明安装
2006/10/09 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
非常精妙的PHP递归调用与静态变量使用
2012/12/16 PHP
PHP实现的json类实例
2015/07/28 PHP
php获取文件名称和扩展名的方法
2017/02/07 PHP
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
python实现360皮肤按钮控件示例
2014/02/21 Python
Python面向对象特殊成员
2017/04/24 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
电子商务专业个人的自我评价
2013/11/19 职场文书
优秀团支部事迹材料
2014/02/08 职场文书
原材料检验岗位职责
2014/03/15 职场文书
物流管理毕业生自荐信范文
2014/03/15 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
户籍证明格式
2014/09/15 职场文书