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


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 相关文章推荐
jquerymobile checkbox及时刷新才能获取其准确值
Apr 14 Javascript
关于jquery css的使用介绍
Apr 18 Javascript
js通过地址栏给action传值(中文乱码全是问号)
May 02 Javascript
document.forms[].submit()使用介绍
Feb 19 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
May 14 Javascript
javascript中Math.random()使用详解
Apr 15 Javascript
jQuery检测某个元素是否存在代码分享
Jul 09 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
Dec 01 Javascript
Angular在一个页面中使用两个ng-app的方法
Feb 20 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
Aug 08 Javascript
JS对象和字符串之间互换操作实例分析
Feb 02 Javascript
写一个Vue Popup组件
Feb 25 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
解析thinkphp的左右值无限分类
2013/06/20 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
smarty内置函数config_load用法实例
2015/01/22 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
js判断浏览器的比较全的代码
2007/02/13 Javascript
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
二行代码解决全部网页木马
2008/03/28 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
javascript中关于执行环境的杂谈
2011/08/14 Javascript
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
用js一次改变多个input的readonly属性值的方法
2014/06/11 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
js变形金刚文字特效代码分享
2015/08/20 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
一种Javascript解释ajax返回的json的好方法(推荐)
2016/06/02 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
[02:48]DOTA2英雄基础教程 暗夜魔王
2013/12/12 DOTA
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
python条件和循环的使用方法
2013/11/01 Python
Python用threading实现多线程详解
2017/02/03 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
详解Python实现进度条的4种方式
2020/01/15 Python
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
人力资源管理专业自荐书范文
2014/02/10 职场文书
餐饮总经理岗位职责
2014/03/07 职场文书
医药营销个人求职信
2014/04/12 职场文书
村抢险救灾方案
2014/05/09 职场文书
亮剑观后感500字
2015/06/05 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
送给客户微信问候语!
2019/07/04 职场文书
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技