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


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 相关文章推荐
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
Feb 13 Javascript
js的flv视频播放器插件使用方法
Jun 23 Javascript
微信小程序五星评分效果实现代码
Apr 06 Javascript
d3.js实现立体柱图的方法详解
Apr 28 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
Sep 29 Javascript
解决vue单页路由跳转后scrollTop的问题
Sep 03 Javascript
JavaScript判断浏览器运行环境的详细方法
Jun 30 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
Aug 09 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
Sep 06 Javascript
vue-property-decorator用法详解
Dec 12 Javascript
JQuery常用选择器功能与用法实例分析
Dec 23 jQuery
Vue js with语句原理及用法解析
Sep 03 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实现CSV文件的导入和导出类
2015/03/24 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
JQuery标签页效果实例详解
2015/12/24 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
2016/07/22 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
原生js实现验证码功能
2017/03/16 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
python循环输出三角形图案的例子
2019/11/22 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
pip install命令安装扩展库整理
2021/03/02 Python
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
2012/02/21 面试题
保安员岗位职责
2013/11/17 职场文书
英语自荐信常用语句
2013/12/13 职场文书
2014年五一劳动节社区活动总结
2014/04/14 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
单位未婚证明范本
2014/11/25 职场文书
学校会议通知范文
2015/04/15 职场文书
被委托人身份证明
2015/08/07 职场文书
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS
mysql脏页是什么
2021/07/26 MySQL