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


Posted in Javascript onMay 26, 2020

本文实例为大家分享了微信小程序实现文字跑马灯的具体代码,供大家参考,具体内容如下

效果

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

wxml

<view>1 显示完后再显示</view>
<view class="example">
 <view class="marquee_box">
 <view class="marquee_text" style="{{orientation}}:{{marqueeDistance}}px;font-size: {{size}}px;">
 {{text}}
 </view>
 </view>
</view>
<view>2 出现白边后即显示</view>
<view class="example">
 <view class="marquee_box">
 <view class="marquee_text" style="{{orientation}}:{{marqueeDistance2}}px;font-size: {{size}}px;">
 <text>{{text}}</text>
 <text wx:if="{{marquee2copy_status}}" style="margin-left:{{marquee2_margin}}px;">{{text}}</text>
 </view>
 </view>
</view>

wxss

.example {
 display: block;
 width: 100%;
 height: 100rpx;
}

.marquee_box {
 width: 100%;
 position: relative;
}

.marquee_text {
 white-space: nowrap;
 position: absolute;
 top: 0;
}

js

// pages/home/marquee/marquee.js
Page({
 data: {
 text: '这是一条会滚动的文字滚来滚去的文字跑马灯,哈哈哈哈哈哈哈哈',
 marqueePace: 1,//滚动速度
 marqueeDistance: 0,//初始滚动距离
 marqueeDistance2: 0,
 marquee2copy_status: false,
 marquee2_margin: 60,
 size: 14,
 orientation: 'left',//滚动方向
 interval: 20 // 时间间隔
 },
 onShow: function () {
 // 页面显示
 var vm = this;
 var length = vm.data.text.length * vm.data.size;//文字长度
 var windowWidth = wx.getSystemInfoSync().windowWidth;// 屏幕宽度
 vm.setData({
 length: length,
 windowWidth: windowWidth,
 marquee2_margin: length < windowWidth ? windowWidth - length : vm.data.marquee2_margin//当文字长度小于屏幕长度时,需要增加补白
 });
 vm.run1();// 水平一行字滚动完了再按照原来的方向滚动
 vm.run2();// 第一个字消失后立即从右边出现
 },
 run1: function () {
 var vm = this;
 var interval = setInterval(function () {
 if (-vm.data.marqueeDistance < vm.data.length) {
 vm.setData({
  marqueeDistance: vm.data.marqueeDistance - vm.data.marqueePace,
 });
 } else {
 clearInterval(interval);
 vm.setData({
  marqueeDistance: vm.data.windowWidth
 });
 vm.run1();
 }
 }, vm.data.interval);
 },
 run2: function () {
 var vm = this;
 var interval = setInterval(function () {
 if (-vm.data.marqueeDistance2 < vm.data.length) {
 // 如果文字滚动到出现marquee2_margin=30px的白边,就接着显示
 vm.setData({
  marqueeDistance2: vm.data.marqueeDistance2 - vm.data.marqueePace,
  marquee2copy_status: vm.data.length + vm.data.marqueeDistance2 <= vm.data.windowWidth + vm.data.marquee2_margin,
 });
 } else {
 if (-vm.data.marqueeDistance2 >= vm.data.marquee2_margin) { // 当第二条文字滚动到最左边时
  vm.setData({
  marqueeDistance2: vm.data.marquee2_margin // 直接重新滚动
  });
  clearInterval(interval);
  vm.run2();
 } else {
  clearInterval(interval);
  vm.setData({
  marqueeDistance2: -vm.data.windowWidth
  });
  vm.run2();
 }
 }
 }, vm.data.interval);
 }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 实现的全选和反选
Apr 15 Javascript
对new functionName()定义一个函数的理解
May 22 Javascript
html的DOM中document对象anchors集合用法实例
Jan 21 Javascript
JavaScript删除数组元素的方法
Mar 20 Javascript
获取JavaScript异步函数的返回值
Dec 21 Javascript
JavaScript基本类型值-Number类型
Feb 24 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
Jun 16 jQuery
ES6关于Promise的用法详解
May 07 Javascript
Three.js实现简单3D房间布局
Dec 30 Javascript
ant design vue中表格指定格式渲染方式
Oct 28 Javascript
JavaScript阻止事件冒泡的方法
Dec 06 Javascript
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
Apr 09 Javascript
微信小程序实现滚动消息通知
Feb 02 #Javascript
微信小程序实现YDUI的ScrollTab组件
Feb 02 #Javascript
微信小程序实现YDUI的ScrollNav组件
Feb 02 #Javascript
vuex的简单使用教程
Feb 02 #Javascript
详解VueJS应用中管理用户权限
Feb 02 #Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
Feb 02 #Javascript
使用express+multer实现node中的图片上传功能
Feb 02 #Javascript
You might like
php header示例代码(推荐)
2010/09/08 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
php随机取mysql记录方法小结
2014/12/27 PHP
实例介绍PHP中zip_open()函数用法
2019/02/15 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
js Array对象的扩展函数代码
2013/04/24 Javascript
jQuery 淡出一个图像到另一个图像的实现代码
2013/06/12 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
利用python代码写的12306订票代码
2015/12/20 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
git进行版本控制心得详谈
2017/12/10 Python
python实现SOM算法
2018/02/23 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
佳能英国官方网站:Canon UK
2017/08/08 全球购物
Nike瑞典官方网站:Nike.com (SE)
2018/11/26 全球购物
数据库方面面试题
2012/04/22 面试题
用Python写一个for循环的例子
2016/07/19 面试题
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
求职信写作要突出重点
2014/01/01 职场文书
服务质量承诺书
2014/03/27 职场文书
旅行社优秀创业计划书
2014/08/16 职场文书
企业文化学习心得体会
2016/01/21 职场文书
2016年综治和平安建设宣传月活动总结
2016/04/01 职场文书
Golang二维数组的使用方式
2021/05/28 Golang
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android
php双向队列实例讲解
2021/11/17 PHP
Python实现批量自动整理文件
2022/03/16 Python