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


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 相关文章推荐
extjs form textfield的隐藏方法
Dec 29 Javascript
深入理解JavaScript定时机制
Oct 29 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
Mar 14 Javascript
jquery在IE、FF浏览器的差别详细探讨
Apr 28 Javascript
红米手机抢购的js代码
Mar 10 Javascript
js date 格式化
Feb 15 Javascript
详解Vue中添加过渡效果
Mar 20 Javascript
js实现各浏览器全屏代码实例
Jul 03 Javascript
npm scripts 使用指南详解
Oct 08 Javascript
解决layer.open弹出框不能获取input框的值为空的问题
Sep 10 Javascript
JS实现瀑布流效果
Mar 07 Javascript
Vue的data、computed、watch源码浅谈
Apr 04 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
PHP反射机制用法实例
2014/08/28 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
PHP让数组中有相同值的组成新的数组实例
2017/12/31 PHP
深入认识javascript中的eval函数
2009/11/02 Javascript
js url传值中文乱码之解决之道
2009/11/20 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
jQuery+ajax简单实现文件上传的方法
2016/06/03 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
Python语法快速入门指南
2015/10/12 Python
python版飞机大战代码分享
2018/11/20 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
详解python程序中的多任务
2020/09/16 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
英国标准协会商店:BSI Shop
2019/02/25 全球购物
欧洲最古老的鞋厂:Peter Kaiser
2019/11/05 全球购物
自立自强的名人事例
2014/02/10 职场文书
教师党员一句话承诺
2014/03/28 职场文书
铅球加油稿100字
2014/09/26 职场文书
初中生旷课检讨书范文
2014/10/06 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
三严三实·严以律己心得体会
2016/01/13 职场文书
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js