实现效果

实现原理

实现弹幕功能主要用的是css的animation 属性

animation 属性是一个简写属性,用于设置六个动画属性:

  • animation-name 规定需要绑定到选择器的 keyframe 名称。
  • animation-duration 规定完成动画所花费的时间,以秒或毫秒计。
  • animation-timing-function 规定动画的速度曲线。
  • animation-delay 规定在动画开始之前的延迟。
  • animation-iteration-count 规定动画应该播放的次数。
  • animation-direction 规定是否应该轮流反向播放动画。

我做的是弹幕是有序弹幕,既三行数据,不同速率从右向左滚动,不会出现重叠

实现方式

主要页面代码:

<view :class="isPauseTop?'aonPause aon':' aon'" class="dmGroup top "><view class='dmItem' v-for="(item,index) in dmData" v-if="index<6" @click="pause(1)"><view class='dm'><view class='avatarBox'><image :src=' item.sex == 0 ? avatarBoy : avatarGirl ' class='avatar' mode='aspectFit'></image><image :src=' item.sex == 0 ? iconBoy : iconGirl ' class='sex' mode='aspectFit'></image></view><text class='content'>{{ item.content }}</text><view @click="dianzan(index,1)"><image :src="index==isZanIndex?'../static/img/wish/zan1.png':'../static/img/wish/zan.png'" class='icon good' mode='aspectFill'></image><text>{{ item.zanNumber }}</text></view></view></view></view>

css代码:

aon{position: fixed;white-space:nowrap;display: block;animation: mymove 15s linear forwards infinite;animation-timing-function: linear;-webkit-animation-timing-function: linear;animation-fill-mode: forwards;}@keyframes mymove{from{left: 0%;}to{left: -200%;}}@-moz-keyframes mymove /* Firefox */{from{left: 0%;}to{left: -200%;}}@-webkit-keyframes mymove /* Safari and Chrome */{from{left: 0%;}to{left: -200%;}}@-o-keyframes mymove /* Opera */{from{left: 0%;}to{left: -200%;}}

在用到animation之前那一行的数据需要全部设为display: inline-block;

参考的网址只有滑动,我加了点击后暂停动画,用于完成点赞的业务逻辑

点击弹幕暂停移动

css代码:

.aonPause{animation-play-state:paused !important;-webkit-animation-play-state:paused !important; /* Safari 和 Chrome */}

这只是一行的弹幕,如果想要加多几行弹幕,弹幕移动的速率不同,就动态改变animation的属性
没想到吧,实现过程就是这么简单

uniapp小程序实现弹幕功能相关推荐

  1. uniapp小程序微信支付功能

    目录 字段说明 前置工作 获取openid 微信支付 报错问题 uniapp 开发小程序需要实现微信支付功能,下面对相关业务进行说明. 字段说明 AppID:小程序的身份证,微信客户端用来确认你的小程 ...

  2. uniapp小程序消息订阅功能

    场景描述 微信充电小程序希望在用户充电时间结束,或者用户的充电完成时.通过微信公众号的推送信息的方式,告知用户充电进程. 需求实现 基础API: 实现上面的需求用到API有:uni.getSettin ...

  3. uniapp微信小程序拨打电话功能

    uniapp微信小程序拨打电话功能 先上代码,可以直接拿过去用. <!-- h5部分 --><button @click="playphone()">< ...

  4. uni-app 小程序使用腾讯地图完成搜索功能

    前言 使用uni-app开发小程序时候使用腾讯地图原生SDK是,要把原生写法转成vue写法在这记录一下. 我们需要注意的是使用高德地图时我们不仅要引入SDK,还要再uni-app中配置允许使用. 由于 ...

  5. 微信小程序:常用功能8——小程序视频组件中的弹幕功能

    微信小程序:常用功能8--小程序视频组件中的弹幕功能 昨天我们刚说了微信小程序的视频组件和分享功能微信小程序:常用功能8--在小程序添加视频组件,并将页面分享到朋友圈,今天想把弹幕功能说一下,但是感觉 ...

  6. uni-app小程序使用客服功能和获取客服聊天记录demo

    demo代码如下: <template>     <view class="content">         <button open-type=& ...

  7. uniapp小程序迁移到TS

    uniapp小程序迁移到TS 我一直在做的小程序就是 山科小站 也已经做了两年了,目前是用uniapp构建的,在这期间也重构好几次了,这次在鹅厂实习感觉受益良多,这又得来一次很大的重构,虽然小程序功能 ...

  8. java基本微信小程序的快递代收派送系统 uniapp小程序

    随着时代的发展,人们生活的节奏越来越快,但是快递已经成为人们生活中的一个重要组成部分,基本每个人都会收发快递,如果这些事情全部都到快递站点进行处理,是很浪费时间和精力的一件事情.为了能够让快递代收和派 ...

  9. uniapp小程序 扫二维码登录uniapp h5

    uniapp扫码登录功能 一.测试环境:uniapp小程序 uniapp h5 二.实现思路 三.实现步骤 一.测试环境:uniapp小程序 uniapp h5 二.实现思路 1.手机登录uniapp ...

最新文章

  1. 【CSS中width、height的默认值】
  2. 使用mpvue和wepy开发小程序
  3. PHP的魔术常量魔术方法超全局变量
  4. MPMovieplayercontroller
  5. Codeforce 189B——Counting Rhombi
  6. 【Spark】Spark TimeSort 排序
  7. 使用 kotlin 开发 android 遇到的问题
  8. Go语言实战-golang操作Mongodb
  9. 如何撰写专利说明书摘要?
  10. 基于机器视觉技术的表面缺陷检测技术综述
  11. 苹果真伪查询_二手MacBook Pro Air等苹果笔记本验货 鉴定 基本方法 流程
  12. 假设有一张纸可对折无限次,它的厚度为0.1毫米,珠穆朗玛峰的高度为8848.86米,求这张纸对折多少次后它的厚度会超过珠峰的高度。
  13. git命令提交后push失败,缺少changeID的解决办法
  14. 美颜sdk中,实现人脸识别的主要方法有哪些?
  15. element-ui 表格总计有多行的情况
  16. 记一次字段类型强转导致的死锁
  17. 酒桌饭局上的那些事,男生必学,女生必看,非常有用
  18. 物联卡中心:电信物联卡怎么办理,电信物联卡官网
  19. cdoj1638 红藕香残玉簟秋,轻解罗裳,独上兰舟。
  20. Flutter商城项目实战(商品分类)

热门文章

  1. 转岗去微信事业群的一些反思
  2. python loads_Python中的dump() 和load()以及dumps()和loads()
  3. 浪潮信息与宁盾共促身份管理系统升级 联合解决方案通过澎湃技术认证
  4. 计算机几核的作用,电脑处理器最高几核_如何查看电脑属于几核(方法步骤教程)...
  5. 苹果手机2019年什么时候出新款_提升信号表现 苹果改进iPhone 11天线设计
  6. java驾校综合信息系统
  7. word 写论文要求奇偶页眉不同,而页码连续。
  8. Xamarin Android 打造属于自己的博客园APP(1)
  9. jquery操作兄弟节点
  10. lwip 2.1.2天坑之顾头不固定