微信小程序实现文字跑马灯


Posted in Javascript onMay 26, 2020

前言

要实现跑马灯主要就是获得判断开始定界和结束定界, 1.9.3新增的wxml操作接口 就可以拿到节点长宽等属性,当然你也可以直接用 文字数量 * 文字大小(注意字体的单位px,rpx)。

效果图

短字

微信小程序实现文字跑马灯

长字

微信小程序实现文字跑马灯

wxml

<view class="content">
 <text class="every" decode="{{true}}" style="right:{{announZf}}{{announNum}}px">{{announ}}</text>
</view>

js

我这里用的是wepy写的,凑合着看吧

export default class ShopIndex extends wepy.page {

 config = {
 navigationBarTitleText : '首页',
 }

 data = {
 // 公告内容
 announ : '超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度超长度v',
 announNum : 0,
 announy : 280,
 announZf : '-'
 }

 onLoad() {
 
 let self = this;
 var query = wepy.createSelectorQuery();
 query.select('.content').boundingClientRect(ContentRes => {
  var query = wepy.createSelectorQuery();
  query.select('.every').boundingClientRect(TextRes => {

  //加上一百是因为防止在归零时出现闪烁的情况
  let maxContentWidth = ContentRes.width + 100,
  maxTextWidth = TextRes.width;
  //初始化
  self.announNum = TextRes.width
  self.$apply();

  //定时器
  setInterval(()=>{
   if(self.announZf == '-') {
   if(self.announNum <= 0) {
    self.announZf = ''
   } else {
    self.announNum -= 1
   }
   } else {
   if(self.announNum > (maxContentWidth)) {
    //归位
    self.announZf = '-'
    self.announNum = maxTextWidth
   } else {
    self.announNum += 1
   }
   } 
   self.$apply();  
  },5)
  }).exec();
 }).exec();

 }
 }

-----2018-12-24 ----

使用的时候需要注意 setInterval 的性能问题, 不用的时候或者不显示的时候将其停止,否则会像作者一样给自己挖坑。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 弹出层组件(升级版)
May 12 Javascript
jquery可见性过滤选择器使用示例
Jun 24 Javascript
JQuery给元素绑定click事件多次执行的解决方法
May 29 Javascript
angularjs指令中的compile与link函数详解
Dec 06 Javascript
jQuery修改class属性和CSS样式整理
Jan 30 Javascript
Bootstrap页面布局基础知识全面解析
Jun 13 Javascript
JS查找字符串中出现次数最多的字符
Sep 05 Javascript
微信小程序左滑删除功能开发案例详解
Nov 12 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
Dec 30 Javascript
如何在项目中使用log4.js的方法步骤
Jul 16 Javascript
详解JavaScript匿名函数和闭包
Jul 10 Javascript
仿照Element-ui实现一个简易的$message方法
Sep 14 Javascript
基于JavaScript canvas绘制贝塞尔曲线
Dec 25 #Javascript
基于js Canvas实现二次贝塞尔曲线
Dec 25 #Javascript
JavaScript实现小球沿正弦曲线运动
Sep 07 #Javascript
微信小程序使用二次贝塞尔曲线画波浪
Dec 25 #Javascript
微信小程序开发问题之wx.previewImage
Dec 25 #Javascript
微信小程序使用for循环动态渲染页面操作示例
Dec 25 #Javascript
JavaScript简单实现动态改变HTML内容的方法示例
Dec 25 #Javascript
You might like
56.com视频采集接口程序(PHP)
2007/09/22 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
WordPress后台中实现图片上传功能的实例讲解
2016/01/11 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
2018/05/12 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
python+opencv实现动态物体识别
2018/01/09 Python
基于Django用户认证系统详解
2018/02/21 Python
Python实现针对给定单链表删除指定节点的方法
2018/04/12 Python
python迭代dict的key和value的方法
2018/07/06 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
什么是抽象
2015/12/13 面试题
个人实用的自我评价范文
2013/11/23 职场文书
机修工岗位职责
2013/11/24 职场文书
大学生自我鉴定书
2014/03/24 职场文书
推广普通话演讲稿
2014/05/23 职场文书
2014年建筑工作总结
2014/11/26 职场文书
党支部审查意见
2015/06/02 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python