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


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 相关文章推荐
硬盘浏览程序,保存成网页格式便可使用
Dec 03 Javascript
极酷的javascirpt,让你随意编辑任何网页
Feb 25 Javascript
学习JavaScript的最佳方法分享
Oct 21 Javascript
JavaScript中setInterval的用法总结
Nov 20 Javascript
javascript事件处理模型实例说明
May 31 Javascript
温习Javascript基础语法之词法结构
May 31 Javascript
JavaScript必知必会(九)function 说起 闭包问题
Jun 08 Javascript
JavaScript原生编写《飞机大战坦克》游戏完整实例
Jan 04 Javascript
jQuery为DOM动态追加事件的方法
Feb 16 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
May 22 Javascript
bootstrap下拉分页样式 带跳转页码
Dec 29 Javascript
element-ui 中使用upload多文件上传只请求一次接口
Jul 19 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
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
javascript 当前日期加(天、周、月、年)
2009/08/09 Javascript
Ajax+Json 级联菜单实现代码
2009/10/27 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
vue实现点击展开点击收起效果
2018/04/27 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
Python调用C语言开发的共享库方法实例
2015/03/18 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
关于django 数据库迁移(migrate)应该知道的一些事
2018/05/27 Python
Python中字符串与编码示例代码
2019/05/20 Python
python之mock模块基本使用方法详解
2019/06/27 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
Python识别html主要文本框过程解析
2020/02/18 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
2014年会演讲稿范文
2014/01/06 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
廉洁校园实施方案
2014/05/25 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
长城导游词400字
2015/01/30 职场文书
党员进社区活动总结
2015/05/07 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang