小程序文字跑马灯效果


Posted in Javascript onDecember 28, 2018

本文实例为大家分享了小程序文字跑马灯效果的具体代码,供大家参考,具体内容如下

market.wxml

<!--pages/market/market.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>

market.wxss

/* pages/market/market.wxss */
.example {
 display: block;
 width: 100%; 
 height: 100rpx;
 
} 
 
.marquee_box {
 width: 100%;
 position: relative;
 
}
 
.marquee_text {
 white-space: nowrap;
 position: absolute;
 top: 0;
 
}

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的淡入淡出可自动切换的幻灯插件
Aug 24 Javascript
JavaScript isArray()函数判断对象类型的种种方法
Oct 11 Javascript
IE事件对象(The Internet Explorer Event Object)
Jun 27 Javascript
jquery cookie实现的简单换肤功能适合小网站
Aug 25 Javascript
在js文件中写el表达式取不到值的原因及解决方法
Dec 23 Javascript
js 本地预览的简单实现方法
Feb 18 Javascript
基于javascript bootstrap实现生日日期联动选择
Apr 07 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
Dec 14 Javascript
vue 实现移动端键盘搜索事件监听
Nov 06 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
Feb 11 Javascript
vue开发中遇到的问题总结
Apr 07 Javascript
浅谈vue中$bus的使用和涉及到的问题
Jul 28 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
Dec 28 #Javascript
Angular使用Restful的增删改
Dec 28 #Javascript
原生js实现公告滚动效果
Jan 10 #Javascript
微信小程序实现文字无限轮播效果
Dec 28 #Javascript
小程序实现左右来回滚动字幕效果
Dec 28 #Javascript
原生JS实现的自动轮播图功能详解
Dec 28 #Javascript
jQuery实现的自定义轮播图功能详解
Dec 28 #jQuery
You might like
PHP读取文件内容后清空文件示例代码
2014/03/18 PHP
PHP5中实现多态的两种方法实例分享
2014/04/21 PHP
php实现的mongodb操作类
2015/05/28 PHP
php微信开发之百度天气预报
2016/11/18 PHP
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
第六篇Bootstrap表格样式介绍
2016/06/21 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
React Native 图片查看组件的方法
2018/03/01 Javascript
layUI的验证码功能及校验实例
2019/10/25 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python黑魔法之编码转换
2016/01/25 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
2018/03/02 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
详解anaconda安装步骤
2020/11/23 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
python 基于opencv去除图片阴影
2021/01/26 Python
不同浏览器对CSS3和HTML5的支持状况
2009/10/31 HTML / CSS
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
2012/10/05 面试题
电子商务专业个人的自我评价
2013/11/19 职场文书
拓展策划方案
2014/06/03 职场文书
不同意离婚答辩状
2015/05/22 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js