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


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 相关文章推荐
JS 面向对象之神奇的prototype
Feb 26 Javascript
jquery 删除cookie失效的解决方法
Nov 12 Javascript
基于JavaScript实现一定时间后去执行一个函数
Dec 14 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
Jul 27 Javascript
微信小程序实现YDUI的ScrollNav组件
Feb 02 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
Jun 13 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
Sep 04 Javascript
详解node字体压缩插件font-spider的用法
Sep 28 Javascript
小程序指纹验证的实现代码
Dec 04 Javascript
详解在create-react-app使用less与antd按需加载
Dec 06 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
Feb 21 Javascript
vue-openlayers实现地图坐标弹框效果
Sep 24 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
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
javascript学习网址备忘
2007/05/29 Javascript
js函数般调用正则
2008/04/08 Javascript
页面中js执行顺序
2009/11/09 Javascript
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
2015/07/02 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
three.js中3D视野的缩放实现代码
2017/11/16 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
Vue多组件仓库开发与发布详解
2019/02/28 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
flask中的wtforms使用方法
2018/07/21 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
python多线程同步之文件读写控制
2021/02/25 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
python不同版本的_new_不同点总结
2020/12/09 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
宝宝周岁宴答谢词
2014/01/26 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
弄虚作假心得体会
2014/09/10 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
2014年新农村建设工作总结
2014/12/01 职场文书
母亲节主题班会
2015/08/14 职场文书
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL