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


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 实现图片直接下载示例代码
Jul 22 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
Oct 22 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
Jan 08 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
Feb 14 Javascript
jquery+json实现分页效果
Mar 07 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
Jun 12 Javascript
详解堆的javascript实现方法
Nov 29 Javascript
javascript replace()第二个参数为函数时的参数用法
Dec 26 Javascript
jQuery动态生成不规则表格(前后端)
Feb 21 Javascript
解决vue页面DOM操作不生效的问题
Mar 17 Javascript
如何在js代码中消灭for循环实例详解
Jul 29 Javascript
Vue h函数的使用详解
Feb 18 Vue.js
微信小程序实现滚动消息通知
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提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
phpstorm编辑器乱码问题解决
2014/12/01 PHP
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
firebug的一个有趣现象介绍
2011/11/30 Javascript
js hover 定时器(实例代码)
2013/11/12 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
javaScript实现游戏倒计时功能
2018/11/17 Javascript
Python中的Matplotlib模块入门教程
2015/04/15 Python
Python列表切片用法示例
2017/04/19 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
2018/08/05 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
2020/04/20 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
python与c语言的语法有哪些不一样的
2020/09/13 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
使用Html5中的cavas画一面国旗
2019/09/25 HTML / CSS
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
简述数组与指针的区别
2014/01/02 面试题
历史专业个人求职信范文
2013/12/07 职场文书
植物生产学专业求职信
2014/08/08 职场文书
支行行长竞聘报告
2014/11/06 职场文书
2014年车间工作总结
2014/11/21 职场文书
语文复习计划
2015/01/19 职场文书
初中家长意见
2015/06/03 职场文书
2016年习主席讲话学习心得体会
2016/01/20 职场文书
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
2022/01/18 PostgreSQL