需求:

实现框内的文字自下而上的自动循环滚动。

解决方案:

demo:https://github.com/yapeee/wx-text-rolling-demo

第一种方法:

经查询,最一开始实现字幕滚动是使用的微信小程序的swiper组件,后来发现,使用swiper组件实现的效果类似于轮播图,不符合需求。

<swiper class="swiper_container" vertical="true" autoplay="true" circular="true" interval="2000"><view class='list'><view wx:for="{{List}}" wx:key="index"><swiper-item><text class='txt-light'>{{item.checkTime}}</text> {{item.content}}</swiper-item></view></view>
</swiper>

第二种方法:

使用微信小程序的动画来来实现字幕滚动。

思路:

1.当list底部到container框的顶部时,即,内容全部走出了框外。结束字幕滚动,重新开始下一轮的滚动。

2.计算container框的高度,list的高度。一个框中的内容显示时长为 1500(暂定),通过list的高度除以container框的高度来判断显示时长(求整数并加1(+1是为了显示最后一个空白框))。

实现:

wxml

<view class="container"><view class='list' animation="{{animationData}}"><view><text class="txt-light">09:08</text> 很多人的一生,基本都是自己跟别人较劲,比如别人对自己的期待,比如把别人看得太重把自己看得太轻。其实一个人最应该考虑的问题是,自己如何与自己相处,比如人去楼空的时候如何照顾好自己的孤独,比如夜深人静的时候如何跟心灵沟通。自己跟自己能和谐共处,自己跟别人就能相安无事。</view><view><text class="txt-light">19:08</text> 平和是待人处事的一种态度,也是做人酌一种美德。平和既是一种修养,又是一种工作方法。平和的人,从不被忙碌所萦绕,闲时吃紧,忙里悠闲。待人不严,教人勿高。宽严得宜,分寸得体。身心自在,能享受生活之乐趣。平和的人生,是和谐的人生,健康的人生。</view></view>
</view>

wxss

.container {background-color: #ccc;height:150rpx;margin: 20rpx 20rpx 20rpx 20rpx; overflow:auto;
}
.txt-light {color:#acadbe;
}

js

Page({/*** 页面的初始数据*/data: {},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function () {},/*** 生命周期函数--监听页面显示*/onShow: function () {// this.util();this.getHeight();},util: function (obj) {console.log(obj);console.log(-obj.list);var continueTime = (parseInt(obj.list / obj.container) + 1) * 1500;var setIntervalTime = 50 + continueTime;var animation = wx.createAnimation({duration: 200,  //动画时长timingFunction: "linear", //线性delay: 0  //0则不延迟});this.animation = animation;animation.translateY(obj.container).step({ duration: 50, timingFunction: 'step-start' }).translateY(-obj.list).step({ duration: continueTime });this.setData({animationData: animation.export()})setInterval(() => {animation.translateY(obj.container).step({ duration: 50, timingFunction: 'step-start' }).translateY(-obj.list).step({ duration: continueTime });this.setData({animationData: animation.export()})}, setIntervalTime)// setInterval(() => {//   animation.translateY(50).step({ duration: 50, timingFunction: 'step-start' }).translateY(-250).step({ duration: 5000 });//   this.setData({//     animationData: animation.export()//   })// }, 6000)},getHeight() {var obj = new Object();//创建节点选择器var query = wx.createSelectorQuery();query.select('.container').boundingClientRect()query.select('.list').boundingClientRect()query.exec((res) => {obj.container = res[0].height; // 框的heightobj.list = res[1].height; // list的height// return obj;this.util(obj);})}
})

20180712更新:

1.框设置为禁止滑动,即

.container {overflow: hidden;
}

防止手动滑动动画,从而影响setinterval的执行。

2.设置setinterval的执行时间>动画执行时间,防止setinterval执行卡顿。


另外一种实现方式:scroll-view实现字幕滚动

【微信小程序】动画实现字幕滚动相关推荐

  1. 微信小程序:公告字幕滚动播放(文字跑马灯效果)

    一.需求 公告文字仅限200字 公告内容仅限一行文字显示 公告内容持续滚动 二.解决思路 使用动画API(Animation.translate),完成移动动画 使用定时器API(setInterva ...

  2. java滚动字幕的实现的实训_微信小程序实现自上而下字幕滚动

    本文实例为大家分享了微信小程序实现字幕滚动的具体代码,供大家参考,具体内容如下 需求: 实现框内的文字自下而上的自动循环滚动. 解决方案: 第一种方法: 经查询,最一开始实现字幕滚动是使用的微信小程序 ...

  3. 微信小程序-炫酷手持滚动弹幕生成小工具

    微信小程序-炫酷手持滚动弹幕生成小工具 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇 ...

  4. 微信小程序开发实现图片滚动效果

    微信小程序开发实现图片滚动效果 效果:左右滑动可以切换展示图片 代码: <!--pages/test/test.wxml--> <!-- 组件 --> <swiper&g ...

  5. 微信小程序 -- 通知消息横向滚动 -- 无缝连接1

    微信小程序 – 通知消息横向滚动 – 无缝连接1 wxml <view class="notice"><view class="left"&g ...

  6. 微信小程序动画之圆形进度条

    微信小程序动画之圆形进度条 上图: 代码: js: //获取应用实例 var app = getApp()var interval; var varName; var ctx = wx.createC ...

  7. 微信小程序动画(七):让页面动起来

    本文默认读者已具备小程序基本动画api,如不了解可先阅读相关的详细介绍文章: 微信小程序动画(一):样式 微信小程序动画(二):旋转 微信小程序动画(三):缩放 微信小程序动画(四):平移 微信小程序 ...

  8. 微信小程序动画执行一次问题

    微信小程序动画执行一次解决方法 简单总结一下微信动画的实现及执行步骤(更新data使用的方式和vue一样直接this.data=""). const anim = wx.creat ...

  9. 微信小程序动画渐入以及动态存值setdata问题

    微信小程序动画渐入以及动态存值setdata问题 想要在微信小程序中制作多个元素逐一渐入的效果,效果类似下图: 首先参考微信开发文档API动画部分的内容 开发文档API–动画Animation 创建动 ...

  10. 微信小程序动画效果,小程序animation动画

    微信小程序动画效果 最近一直在做小程序开发,在官方文档中无意间看到过渡动画效果,我就有点小激动,用每一个开发框架的时候我都最先研究动画和过渡 闲来无事写了一个小demo <!--wxml代码-- ...

最新文章

  1. 工作总结 npoi 模板 导出公式 excel
  2. 压缩目录Linux常用的几种文件压缩解压方法
  3. php 腾讯逆地址解析,腾讯地图逆地址解析
  4. C++中引用的一些问题
  5. oracle client 11.2.0.3 32位,oracle client 32位/64位下载(Oracl数据库)
  6. javascript --- [express+ vue2.x + elementUI]登陆的流程梳理
  7. 2019计算机开机号003期,2019年011期福彩中心开机号(附汇总)
  8. w ndows7文档加密取消,win7文件夹怎么加密?windows7文件加密方法
  9. .net core 后台 post设置等待时间_[vueelementadmin]前端发送的post请求的数据,后端接收不到并报EOFException异常的解决方案...
  10. WORD如何将多文档快速汇总到一份WORD文件里面?
  11. 《A Point Set Generation Network for 3D Object Reconstruction from a Single Image》论文笔记_2D图像生成3D点云
  12. eclipse安装Maven插件M2E
  13. 利用python开发微信JS-JDK(基于python3.6)
  14. 在lua的string库和正则表达式
  15. XenServer学习笔记1虚拟磁盘和虚拟内存
  16. 上验证cudnn是否安装成功_ubuntu18.04 安装cuda、cudnn、tensorflow和pytorch其实很简单...
  17. postfix疯狂外发垃圾邮件之分析与解决(下)
  18. Spring WebFlux - WebClient连接池简单测试和代码分析
  19. Error connecting to node kafka1:9092 (id: 0 rack: null) ,marathon docker镜像添加hosts
  20. 鼠标右键转圈圈_电脑一右键就一直转圈怎么办_win10鼠标一点右键就转圈圈的解决方法...

热门文章

  1. 仿写小米网站首页 产品导航栏
  2. 限速的含义及美国设置限速的相关规定
  3. 17.JavaScript函数的不同形态,函数是个表达式、函数是一个值,函数声明和函数表达式的区别
  4. 用spss进行时间序列分析
  5. Android studio 底部的状态栏不见了如何显示
  6. it计算机工资,什么是it技术(it工资一般多少)
  7. 联想 n700 android,联想N700无限鼠标 一个深沉低调的存在
  8. 全金属狂怒云上计算机密码,全金属狂怒攻略_全金属狂怒心得,秘籍,视频,流程攻略_3DM单机...
  9. 【柏拉图】在WPF中利用DevExpress控件进行柏拉图展示
  10. 一个双非本科普通学生加入字节之路 也是大学四年的总结