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


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 相关文章推荐
动态加载外部javascript文件的函数代码分享
Jul 28 Javascript
JS分页效果示例
Oct 11 Javascript
jquery form 隐藏的input 选择
Apr 29 Javascript
JavaScript实现多个重叠层点击切换效果的方法
Apr 24 Javascript
微信企业号开发之微信考勤Cookies的使用
Sep 11 Javascript
jQuery实现拖动剪裁图片作为头像
Dec 28 Javascript
JS出现失效的情况总结
Jan 20 Javascript
Javascript中引用类型传递的知识点小结
Mar 06 Javascript
ES6中class类用法实例浅析
Apr 06 Javascript
安装vue-cli报错 -4058 的解决方法
Oct 19 Javascript
微信小程序Echarts覆盖正常组件问题解决
Jul 13 Javascript
JavaScript进制转换实现方法解析
Jan 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
php的计数器程序
2006/10/09 PHP
PHP开发入门教程之面向对象
2006/12/05 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
深入PHP5中的魔术方法详解
2013/06/17 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
控制打印时页眉角的代码
2007/02/08 Javascript
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
2012/10/12 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
2013/01/23 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
jQuery实现IE输入框完成placeholder标签功能的方法
2017/09/20 jQuery
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
在Python中使用SimpleParse模块进行解析的教程
2015/04/11 Python
Python中类的初始化特殊方法
2017/12/01 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
Python多分支if语句的使用
2020/09/03 Python
求职者简历中的自我评价
2013/10/20 职场文书
怎么写好自荐信
2013/10/30 职场文书
口头翻译求职人自荐信
2013/12/07 职场文书
运动会入场词50字
2014/02/20 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
Python爬虫基础初探selenium
2021/05/31 Python