小程序文字跑马灯效果


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 相关文章推荐
网上抓的一个特效
May 11 Javascript
js 数组操作代码集锦
Apr 28 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
Mar 01 Javascript
控制台报错object is not a function的解决方法
Aug 24 Javascript
JavaScript中的style.cssText使用教程
Nov 06 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
Nov 24 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
Mar 10 Javascript
js判断某个字符出现的次数的简单实例
Jun 03 Javascript
jqPlot jQuery绘图插件的使用
Jun 18 Javascript
JavaScript生成.xls文件的代码
Dec 22 Javascript
Javascript实现倒计时时差效果
May 18 Javascript
原生JS使用Canvas实现拖拽式绘图功能
Jun 05 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中foreach()用法汇总
2015/07/02 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
2016/07/07 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
validator验证控件使用代码
2010/11/23 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
2014/04/10 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
node vue项目开发之前后端分离实战记录
2017/12/13 Javascript
AngularJS中的作用域实例分析
2018/05/16 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
vue-cli webpack配置文件分析
2019/05/20 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
python打开url并按指定块读取网页内容的方法
2015/04/29 Python
Python构建XML树结构的方法示例
2017/06/30 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
django foreignkey(外键)的实现
2019/07/29 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
Opodo英国旅游网站:预订廉价航班、酒店和汽车租赁
2018/07/14 全球购物
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
英国复古服装购物网站:Collectif
2019/10/30 全球购物
农田水利实习自我鉴定
2013/09/19 职场文书
2013英文求职信模板范文
2013/11/15 职场文书
2014年3.15团委活动总结
2014/03/16 职场文书
体育专业求职信
2014/07/16 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
地雷战观后感
2015/06/09 职场文书