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


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 学习笔记 element属性控制
Jul 23 Javascript
jQuery获得内容和属性示例代码
Jan 16 Javascript
详解javascript数组去重问题
Nov 06 Javascript
js实现的万能flv网页播放器代码
Apr 30 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
Jun 17 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
Jul 03 Javascript
vue-cli 3.x配置跨域代理的实现方法
Apr 12 Javascript
JavaScript模块管理的简单实现方式详解
Jun 15 Javascript
javascript随机变色实例代码
Oct 15 Javascript
jstree中的checkbox默认选中和隐藏示例代码
Dec 29 Javascript
js实现磁性吸附的示例
Oct 26 Javascript
vue+echarts实现多条折线图
Mar 21 Vue.js
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调用Oracle存储过程的方法
2008/09/12 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
2016/01/08 PHP
php短信接口代码
2016/05/13 PHP
php array_map使用自定义的函数处理数组中的每个值
2016/10/26 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
javascript数组使用调用方法汇总
2007/12/08 Javascript
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
jQuery实现下拉框左右选择的简单实例
2014/02/22 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
详解javascript中var与ES6规范中let、const区别与用法
2020/01/11 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
Python编写百度贴吧的简单爬虫
2015/04/02 Python
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
Python发展简史 Python来历
2019/05/14 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
2019/09/20 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
pycharm 实现调试窗口恢复
2021/02/05 Python
Everything But Water官网:美国泳装品牌
2019/03/17 全球购物
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
营销与策划实训报告
2014/11/05 职场文书
解析python中的jsonpath 提取器
2022/01/18 Python
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android