小程序文字跑马灯效果


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 相关文章推荐
一个刚完成的layout(拖动流畅,不受iframe影响)
Aug 17 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
Feb 05 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
Nov 03 Javascript
AngularJS 自定义过滤器详解及实例代码
Sep 14 Javascript
jQuery实现圣诞节礼物动画案例解析
Dec 25 Javascript
js的三种继承方式详解
Jan 21 Javascript
js eval函数使用,js对象和字符串互转实例
Mar 06 Javascript
layui表格实现代码
May 20 Javascript
es6数值的扩展方法
Mar 11 Javascript
在vue项目中 实现定义全局变量 全局函数操作
Oct 26 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
Nov 12 Javascript
JavaScript实现H5接金币功能(实例代码)
Feb 22 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中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
Yii框架引入coreseek分页功能示例
2019/02/08 PHP
javascript 建设银行登陆键盘
2008/06/10 Javascript
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
python使用Image处理图片常用技巧分析
2015/06/01 Python
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
python实现kmp算法的实例代码
2019/04/03 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
傲盾软件面试题
2015/08/17 面试题
高中生毕业学习总结的自我评价
2013/11/14 职场文书
机关党员公开承诺书
2014/08/30 职场文书
公司股份合作协议书
2014/12/07 职场文书
2015年安康杯竞赛活动总结
2015/03/26 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
关于Vue Router的10条高级技巧总结
2021/05/06 Vue.js
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS