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


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 相关文章推荐
Jquery乱码的一次解决过程 图解教程
Feb 20 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
Apr 19 Javascript
js自动查找select下拉的菜单并选择(示例代码)
Feb 26 Javascript
javascript实现博客园页面右下角返回顶部按钮
Feb 22 Javascript
jQuery实现三级菜单的代码
May 09 Javascript
Angular.Js之Scope作用域的学习教程
Apr 27 Javascript
React路由管理之React Router总结
May 10 Javascript
浅谈小程序 setData学问多
Feb 20 Javascript
koa2+vue实现登陆及登录状态判断
Aug 15 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
Dec 09 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
Mar 10 Javascript
基于JavaScript实现大文件上传后端代码实例
Aug 18 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
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
2019/05/13 PHP
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
独特的python循环语句
2016/11/20 Python
Python3实战之爬虫抓取网易云音乐的热门评论
2017/10/09 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
python实现简单学生信息管理系统
2020/04/09 Python
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
跟单文员的岗位职责
2013/11/14 职场文书
奥林匹克的口号
2014/06/13 职场文书
国际金融专业自荐信
2014/07/05 职场文书
实习协议书范本
2014/09/25 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
小学毕业教师寄语
2019/06/21 职场文书