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

 更新时间: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实现轮播图效果 纯js实现图片自动切换

    js实现轮播图效果 纯js实现图片自动切换

    这篇文章主要为大家详细介绍了js实现轮播图效果,图片自动切换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • JavaScript Event学习第二章 Event浏览器兼容性

    JavaScript Event学习第二章 Event浏览器兼容性

    在这一章我将对重要的事件做一个概述,包括一些流行的浏览器的兼容性问题。
    2010-02-02
  • JavaScript 正则表达式详解

    JavaScript 正则表达式详解

    正则表达式(Regular Expression)是一门简单语言的语法规范,是强大、便捷、高效的文本处理工具,它应用在一些方法中,对字符串中的信息实现查找、替换和提取操作
    2021-11-11
  • JavaScript闭包原理及作用详解

    JavaScript闭包原理及作用详解

    闭包是指内部函数总是可以访问其所在的外部函数中声明的变量和参数,即使在其外部函数被返回(寿命终结)了之后。这篇文章将为大家详细介绍一下闭包的原理,作用及用途,快来跟随小编一起学习一下吧
    2021-12-12
  • TypeScript接口介绍

    TypeScript接口介绍

    这篇文章主要介绍了TypeScript接口,接口的作用就是为这些类型命名和为你的代码或第三方代码定义契约。下面我们一起进入文章看看TypeScript接口得具体定义吧,需要的朋友也可以参考一下
    2021-12-12
  • asp.net下利用js实现返回上一页的实现方法小集

    asp.net下利用js实现返回上一页的实现方法小集

    其实要实现这个功能主要还是要用到javascript
    2009-11-11
  • JavaScript实现两个Table固定表头根据页面大小自行调整

    JavaScript实现两个Table固定表头根据页面大小自行调整

    正如标题所言两个Table固定表头,可根据页面大小自行调整使用JavaScript实现,具体的示例如下,感兴趣的朋友可以参考下
    2014-01-01
  • TypeScript联合类型,交叉类型和类型保护

    TypeScript联合类型,交叉类型和类型保护

    这篇文章主要介绍了TypeScript联合类型,交叉类型和类型保护,联合类型就是定义一些类型,定义的变量只需要满足任意一种类型即可,交叉类型就是需要满足所有类型,交叉类型使用,更多内容我们来看看下面文章详细内容吧
    2021-12-12
  • 一文详解Web Audio浏览器采集麦克风音频数据

    一文详解Web Audio浏览器采集麦克风音频数据

    这篇文章主要为大家介绍Web Audio浏览器采集麦克风音频数据实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 基于zepto.js简单实现上传图片

    基于zepto.js简单实现上传图片

    这篇文章主要介绍了基于zepto.js简单实现上传图片的相关资料,需要的朋友可以参考下
    2016-06-06

最新评论