小程序文字跑马灯效果


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获取form表单值的代码
Jul 17 Javascript
js监听鼠标事件控制textarea输入字符串的个数
Sep 29 Javascript
node.js操作mongodb学习小结
Apr 25 Javascript
javascript求日期差的方法
Mar 02 Javascript
AngularJs IE Compatibility 兼容老版本IE
Sep 01 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
Nov 07 Javascript
解析Javascript单例模式概念与实例
Dec 05 Javascript
Vuejs 页面的区域化与组件封装的实现
Sep 11 Javascript
Node中使用ES6语法的基础教程
Jan 05 Javascript
layDate日期控件使用方法详解
Nov 15 Javascript
vue实现树形结构样式和功能的实例代码
Oct 15 Javascript
JavaScript文档对象模型DOM
Nov 20 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+mysql分页代码详解
2008/03/27 PHP
php 中英文语言转换类
2011/09/07 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
你的编程语言可以这样做吗?
2006/09/07 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
[01:58]最残酷竞争 2016国际邀请赛中国区预选赛积分循环赛回顾
2016/06/28 DOTA
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
python中 logging的使用详解
2017/10/25 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
Python爬取成语接龙类网站
2018/10/19 Python
对pandas处理json数据的方法详解
2019/02/08 Python
python issubclass 和 isinstance函数
2019/07/25 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
高中军训感言400字
2014/02/24 职场文书
教师产假请假条
2014/04/10 职场文书
青春奉献演讲稿
2014/05/08 职场文书
团干部培训方案
2014/06/03 职场文书
个人租房协议书样本
2014/10/01 职场文书
2014年维稳工作总结
2014/11/18 职场文书
质量负责人岗位职责
2015/02/15 职场文书
乱世佳人观后感
2015/06/08 职场文书
会计入职心得体会
2016/01/22 职场文书
2016企业先进集体事迹材料
2016/02/25 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python