小程序文字跑马灯效果


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 相关文章推荐
JavaScript 匿名函数(anonymous function)与闭包(closure)
Oct 04 Javascript
判断JS对象是否拥有某种属性的两种方式
Dec 02 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
Jan 20 Javascript
javascript基本包装类型介绍
Apr 10 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
Sep 16 Javascript
详解Node.Js如何处理post数据
Sep 19 Javascript
JavaScript实现打地鼠小游戏
Apr 23 Javascript
基于jQuery封装的分页组件
Jun 26 jQuery
简单谈谈js的数据类型
Sep 25 Javascript
Django+Vue实现WebSocket连接的示例代码
May 28 Javascript
VUE动态生成word的实现
Jul 26 Javascript
vuex的使用和简易实现
Jan 07 Vue.js
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通过asort()给关联数组按照值排序的方法
2015/03/18 PHP
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
JavaScript函数模式详解
2014/11/07 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
详解JavaScript中shift()方法的使用
2015/06/09 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中的默认参数详解
2015/06/24 Python
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
Python实现的异步代理爬虫及代理池
2017/03/17 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
Django框架多表查询实例分析
2018/07/04 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
Python面向对象编程基础实例分析
2020/01/17 Python
Pottery Barn阿联酋:购买家具、家居装饰及更多
2019/12/08 全球购物
上课迟到检讨书
2014/01/19 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
个人违纪检讨书
2014/09/15 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
教师病假条范文
2015/08/17 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书