小程序文字跑马灯效果


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 相关文章推荐
Three.js源码阅读笔记(物体是如何组织的)
Dec 27 Javascript
浅谈EasyUI中编辑treegrid的方法
Mar 01 Javascript
JavaScript中的getDay()方法使用详解
Jun 09 Javascript
jquery实现滑动特效代码
Aug 10 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
Mar 05 Javascript
深入理解Node中的buffer模块
Jun 03 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
Oct 31 Javascript
集成vue到jquery/bootstrap项目的方法
Feb 10 jQuery
jQuery实现的简单对话框拖动功能示例
Jun 05 jQuery
JavaScript类的继承操作实例总结
Dec 20 Javascript
简述vue-cli中chainWebpack的使用方法
Jul 30 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
Jun 25 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
PHP程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
如何利用http协议发布博客园博文评论
2015/08/03 PHP
功能强大的php分页函数
2016/07/20 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
PHP CURL中传递cookie的方法步骤
2019/05/09 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
vue axios请求拦截实例代码
2018/03/29 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
python encode和decode的妙用
2009/09/02 Python
python生成IP段的方法
2015/07/07 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
Html5自定义字体解决方法
2019/10/09 HTML / CSS
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
学习自我鉴定
2014/02/01 职场文书
毕业自我鉴定怎么写
2014/03/25 职场文书
怀念母亲教学反思
2014/04/28 职场文书
文明村镇申报材料
2014/05/06 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
倡议书格式
2014/08/30 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
用Python实现Newton插值法
2021/04/17 Python