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


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 相关文章推荐
用 javascript 实现的点击复制代码
Mar 24 Javascript
ASP中进行HTML数据及JS数据编码函数
Nov 11 Javascript
jquery 学习之二 属性相关
Nov 23 Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 Javascript
js和as的稳定传值问题解决
Jul 14 Javascript
Jquery validation remote 验证的缓存问题解决方法
Mar 25 Javascript
AngularJS 2.0入门权威指南
Oct 08 Javascript
详解Angular2 关于*ngFor 嵌套循环
May 22 Javascript
jQuery实现键盘回车搜索功能
Jul 25 jQuery
JS+Ajax实现百度智能搜索框
Aug 04 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
Apr 23 Javascript
vue引用外部JS的两种种方法
Jan 28 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提取字符串中的图片地址[正则表达式]
2011/11/12 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
Vue axios与Go Frame后端框架的Options请求跨域问题详解
2020/03/03 Javascript
详解vue实现坐标拾取器功能示例
2020/11/18 Vue.js
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
python实现随机森林random forest的原理及方法
2017/12/21 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
Keras设置以及获取权重的实现
2020/06/19 Python
python中Django文件上传方法详解
2020/08/05 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
应届生法律求职信
2013/10/22 职场文书
房地产开发计划书
2014/01/10 职场文书
采购主管岗位职责
2014/02/01 职场文书
数学检讨书1000字
2014/02/24 职场文书
青年文明号口号
2014/06/17 职场文书
领导干部保密承诺书
2014/08/30 职场文书
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python