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


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或asp实现的判断身份证号码是否正确两种验证方法
Nov 26 Javascript
WEB高性能开发之疯狂的HTML压缩
Jun 19 Javascript
实现变速回到顶部的JavaScript代码
May 09 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
Feb 11 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
May 27 Javascript
按钮接受回车事件的三种实现方法
Jun 06 Javascript
seaJs的模块定义和模块加载浅析
Jun 06 Javascript
用iframe实现不刷新整个页面上传图片的实例
Nov 18 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
Apr 03 jQuery
微信小程序wepy框架学习和使用心得详解
May 24 Javascript
浅谈一个webpack构建速度优化误区
Jun 24 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
Sep 25 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
MYSQL环境变量设置方法
2007/01/15 PHP
PHP6 中可能会出现的新特性预览
2014/04/04 PHP
php实现refresh刷新页面批量导入数据的方法
2014/12/23 PHP
JQuery从头学起第三讲
2010/07/06 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
JavaScript中的时间处理小结
2016/02/24 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
在windows上用nodejs搭建静态文件服务器的简单方法
2016/08/11 NodeJs
简单理解vue中track-by属性
2016/10/26 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
vue移动端实现下拉刷新
2018/04/22 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
python解析文件示例
2014/01/23 Python
Python通过解析网页实现看报程序的方法
2014/08/04 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
使用Python的Flask框架来搭建第一个Web应用程序
2016/06/04 Python
Python 基础之字符串string详解及实例
2017/04/01 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
2020/04/08 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
Desigual英国官网:在线购买原创服装
2018/03/09 全球购物
教师演讲稿大全
2014/05/16 职场文书
代理人委托书
2014/09/16 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
婚礼庆典答谢词
2015/01/20 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS
JavaScript选择器函数querySelector和querySelectorAll
2021/11/27 Javascript