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


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日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
Mar 01 Javascript
Javascript玩转继承(三)
May 08 Javascript
jQuery自定义添加&quot;$&quot;与解决&quot;$&quot;冲突的方法
Jan 19 Javascript
JavaScript操作Cookie详解
Feb 28 Javascript
正则表达式,替换所有HTML标签的简单实例
Nov 28 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 jQuery
在node中如何使用 ES6
Apr 22 Javascript
微信小程序实现城市列表选择
Jun 05 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
Jun 26 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
Aug 25 Javascript
vue实现全匹配搜索列表内容
Sep 26 Javascript
jQuery实现轮播图效果demo
Jan 11 jQuery
基于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
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
php多进程应用场景实例详解
2019/07/22 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
2015/12/17 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
tab栏切换原理
2017/03/22 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
es6函数之尾递归用法实例分析
2020/04/25 Javascript
Python使用struct处理二进制的实例详解
2017/09/11 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
用python写测试数据文件过程解析
2019/09/25 Python
wxPython实现列表增删改查功能
2019/11/19 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
Charles & Keith欧盟:新加坡时尚品牌
2019/08/01 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
台湾专柜女包:KINAZ
2019/12/26 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
大学生毕业自我评价范文分享
2013/11/07 职场文书
品质主管的岗位职责
2013/12/04 职场文书
博物馆观后感
2015/06/05 职场文书
小学生暑假安全公约
2015/07/14 职场文书
获奖感言一句话
2015/07/31 职场文书
公司人力资源管理制度
2015/08/05 职场文书
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python