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


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 相关文章推荐
js中巧用cssText属性批量操作样式
Mar 13 Javascript
jquery 回车事件实现代码
Aug 23 Javascript
JavaScript控制Session操作方法
Jan 17 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
Mar 25 Javascript
JQuery下拉框应用示例介绍
Apr 23 Javascript
javascript设置和获取cookie的方法实例详解
Jan 05 Javascript
Bootstrap每天必学之弹出框(Popover)插件
Apr 25 Javascript
vue插件tab选项卡使用小结
Oct 27 Javascript
JS实现简单短信验证码界面
Aug 07 Javascript
你可能不知道的前端算法之文字避让(inMap)
Jan 12 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
Jul 09 Javascript
前端使用crypto.js进行加密的函数代码
Aug 16 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
3.从实例开始
2006/10/09 PHP
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
关于PHP定时发送服务的解决办法
2017/04/23 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
window.open的功能全解析
2006/10/10 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
jQuery中:password选择器用法实例
2015/01/03 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
CentOS6.5设置Django开发环境
2016/10/13 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
python能在浏览器能运行吗
2020/06/17 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
俄罗斯大型在线书店:Читай-город
2019/10/10 全球购物
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
广州某公司软件工程师面试题
2014/12/22 面试题
三好学生自我鉴定
2013/12/17 职场文书
小学生获奖感言范文
2014/02/02 职场文书
个人委托书范本
2014/04/02 职场文书
租车协议书范本2014
2014/11/17 职场文书
校本课程教学计划
2015/01/19 职场文书
病危通知单
2015/04/17 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android
Redis入门教程详解
2021/08/30 Redis
Python开发简易五子棋小游戏
2022/05/02 Python