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


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 each打印JS对象的方法
Nov 13 Javascript
thinkphp 表名 大小写 窍门
Feb 01 Javascript
javascript实现详细时间提醒信息效果的方法
Mar 11 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
Oct 15 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
Oct 31 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
May 26 Javascript
react 父组件与子组件之间的值传递的方法
Sep 14 Javascript
如何开发出更好的JavaScript模块
Dec 22 Javascript
详解angular路由高亮之RouterLinkActive
Apr 28 Javascript
使用vscode快速建立vue模板过程详解
Oct 10 Javascript
JS实现手写 forEach算法示例
Apr 29 Javascript
在Vue 中获取下拉框的文本及选项值操作
Aug 13 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
牡丹941资料
2021/03/01 无线电
从php核心代码分析require和include的区别
2011/01/02 PHP
php IP转换整形(ip2long)的详解
2013/06/06 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
php版微信公众平台开发之验证步骤实例详解
2016/09/23 PHP
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
Vue实现PopupWindow组件详解
2018/04/28 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
Python get获取页面cookie代码实例
2018/09/12 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
幼师专业求职推荐信
2013/11/08 职场文书
仓管员岗位职责范文
2013/11/08 职场文书
教师实习自我鉴定
2013/12/14 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
辞职信的写法
2015/02/27 职场文书
火烧圆明园观后感
2015/06/03 职场文书
在人间读书笔记
2015/06/30 职场文书
校园新闻稿范文
2015/07/18 职场文书
毕业生入职感言
2015/07/31 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书