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


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[js]获取url参数的代码
Oct 17 Javascript
js+html+css实现鼠标移动div实例
Jan 30 Javascript
js操作iframe的一些方法介绍
Jun 25 Javascript
JS实现往下不断流动网页背景的方法
Feb 27 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
Nov 04 Javascript
JavaScript中浅讲ajax图文详解
Nov 11 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
Dec 26 Javascript
vue + socket.io实现一个简易聊天室示例代码
Mar 06 Javascript
vue.js 使用v-if v-else发现没有执行解决办法
May 15 Javascript
React教程之封装一个Portal可复用组件的方法
Jan 02 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
Sep 26 Javascript
JavaScript设计模式之原型模式详情
Jun 21 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
《星际争霸重制版》兵种对比图鉴
2020/03/02 星际争霸
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
2015/07/01 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
Javascript selection的兼容性写法介绍
2013/12/20 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
使用python实现ANN
2017/12/20 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
Python之列表的插入&amp;替换修改方法
2018/06/28 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
Python解析json代码实例解析
2019/11/25 Python
python中format函数如何使用
2020/06/22 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
python中reload重载实例用法
2020/12/15 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
法国房车租赁网站:Yescapa
2019/08/26 全球购物
关于毕业的中学校园广播稿
2014/01/26 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
商场营业员岗位职责
2015/04/14 职场文书
歌咏比赛主持词
2015/06/29 职场文书
JS代码编译器Monaco使用方法
2021/06/11 Javascript