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

 更新时间:2020年05月26日 10:16:06   作者:qq_28707553  
这篇文章主要为大家详细介绍了微信小程序实现文字跑马灯,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前言

要实现跑马灯主要就是获得判断开始定界和结束定界, 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 的性能问题, 不用的时候或者不显示的时候将其停止,否则会像作者一样给自己挖坑。

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

相关文章

  • 使用js获取QueryString的方法小结

    使用js获取QueryString的方法小结

    从网上看到一些使用js获取QueryString的方法,但用起来不是很理想,所以决定自己写一个。主要原理是使用正则表达式匹配location.search中的字符串。
    2010-02-02
  • Javascript中浮点数相乘的一个解决方法

    Javascript中浮点数相乘的一个解决方法

    这篇文章主要介绍了Javascript中浮点数相乘的一个解决方法,需要的朋友可以参考下
    2014-06-06
  • JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例

    JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例

    这篇文章主要介绍了JavaScript(js)处理的HTML事件、键盘事件、鼠标事件,结合实例形式分析了JavaScript针对HTML事件、键盘事件及鼠标事件的简单处理方法,需要的朋友可以参考下
    2019-11-11
  • javascript for循环从入门到偏门(效率优化+奇特用法)

    javascript for循环从入门到偏门(效率优化+奇特用法)

    for循环是非常基础的javascript知识,但由于JS太灵活了,所以可能出现一些让初学者崩溃的写法。我决定由浅入深的解释一下for循环,算是给比我还新手的新手解惑吧,少走弯路
    2012-08-08
  • JS+CSS相对定位实现的下拉菜单

    JS+CSS相对定位实现的下拉菜单

    这篇文章主要介绍了JS+CSS相对定位实现的下拉菜单,涉及JavaScript结合css的定位技术实现下拉菜单的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Bootstrap Modal遮罩弹出层代码分享

    Bootstrap Modal遮罩弹出层代码分享

    本文给大家分享的这段代码并非是Bootstrap的遮罩,只是简单版的遮罩效果,对bootstrap modal 遮罩效果感兴趣的朋友可以参考下本文
    2016-11-11
  • 深入理解JSON数据源格式

    深入理解JSON数据源格式

    JSON 在很多场合下作为数据格式比XML要更加方便。JSON的数据由对象、数组和元素等格式组成。每种格式都可以包含合法的JavaScript数据类型
    2014-01-01
  • js基于canvas实现时钟组件

    js基于canvas实现时钟组件

    这篇文章主要介绍了js基于canvas实现时钟组件的方法,帮助大家更好的理解和使用JavaScript,感兴趣的朋友可以了解下
    2021-02-02
  • js 分页全选或反选标识实现代码

    js 分页全选或反选标识实现代码

    分页全选或反选标识 对多选按钮操作。 批量全选添加、批量移除。 行单选添加、移除。 分页之后(全选或不选)状态标识依然存在
    2011-08-08
  • JavaScript躲避行星游戏实现全程

    JavaScript躲避行星游戏实现全程

    本文将使用 canvas 创建一个躲避小行星游戏。另外将重点介绍的两个方面是:如何使用 JavaScript 来检测键盘输入,以及如何在游戏中使用和处理 HTML5 音频。希望你能够喜欢
    2022-08-08

最新评论