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


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的ajax获取数据后的处理总结(html,xml,json)
Jul 14 Javascript
基于jquery的loading效果实现代码
Nov 05 Javascript
学习js在线html(富文本,所见即所得)编辑器
Dec 18 Javascript
解析Jquery的LigerUI如何实现文件上传
Jul 09 Javascript
js实现通用的微信分享组件示例
Mar 10 Javascript
Javascript基础知识(一)核心基础语法与事件模型
Sep 29 Javascript
微信小程序 如何引入外部字体库iconfont的图标
Jan 31 Javascript
vue-router中的hash和history两种模式的区别
Jul 17 Javascript
爬虫利器Puppeteer实战
Jan 09 Javascript
layui监听工具栏的实例(操作列表按钮)
Sep 10 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
Jan 05 Javascript
JavaScript对象原型链原理详解
Feb 05 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取整的几种方式
2013/06/25 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
PHP反射实际应用示例
2019/04/03 PHP
Javascript 模式实例 观察者模式
2009/10/24 Javascript
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
2016/05/28 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
浅谈js中的bind
2019/03/18 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
[01:15:29]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第三局
2016/03/04 DOTA
Python中使用ElementTree解析XML示例
2015/06/02 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
python 异步async库的使用说明
2020/05/04 Python
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
学校安全工作制度
2014/01/19 职场文书
商业活动邀请函
2014/02/04 职场文书
初级会计求职信范文
2014/02/15 职场文书
博士生求职信
2014/07/06 职场文书
七一建党节演讲稿
2014/09/11 职场文书
班主任高考寄语
2015/02/26 职场文书
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python
Python 文字识别
2022/05/11 Python