代码先锋网 代码片段及技术文章聚合

文字从下往上滚动 各类插件及实现方法[vue]

技术标签: p2p  linq  gnu

 今天接到任务要我实现下图的第三种文字效果实在没有思路,于是百度了好久.找到了几种实现方法,其中也有插件.

第一种方法:

参考文章

  1. 对整个列表实现上移动画
  2. 将列表的第一个数据移动到最后一个

因为vue是基于数据驱动的,所以,对我们开发者来说,直接操控数组,删除第一个数组数据,然后追加到数组后面就好了。

template 部分

  <!-- 无缝滚动效果 -->
  <div class="marquee-wrap">
    <ul class="marquee-list" :class="{'animate-up': animateUp}">
      <li v-for="(item, index) in listData" :key="index">{{item}}</li>
    </ul>
  </div>
  

script部分

export default {
  name: "marquee-up",
  data() {
    return {
      animateUp: false,
      listData: ['12***ve 成功邀请12人 已获奖金60元', 'l***e 成功邀请5人 已获奖金40元', 'l***e 成功邀请1人 已获奖金5元'],
      timer: null
    }
  },
  mounted() {
    this.timer = setInterval(this.scrollAnimate, 1500);
  },
  methods: {
    scrollAnimate() {
      this.animateUp = true
      setTimeout(() => {
        this.listData.push(this.listData[0])
        this.listData.shift()
        this.animateUp = false
      }, 500)
    }
  },
  destroyed() {
    clearInterval(this.timer)
  }
};

style 部分

.marquee-wrap  {
  width: 80%;
  height: 40px;
  border-radius: 20px;
  background: rgba($color: #000000, $alpha: 0.6);
  margin: 0 auto;
  overflow: hidden;
  .marquee-list {
    li {
      width: 100%;
      height: 100%;
      text-overflow: ellipsis;
      overflow: hidden;
      white-space: nowrap;
      padding: 0 20px;
      list-style: none;
      line-height: 40px;
      text-align: center;
      color: #fff;
      font-size: 18px;
      font-weight: 400;
    }
  }
  .animate-up {
    transition: all 0.5s ease-in-out;
    transform: translateY(-40px);
  }
}

如果只是照搬代码而没有去理解,也是没有意思的.所以以下是自己的理解

首先mounted是在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

所以这是在html渲染后的第一步操作就是以1500毫秒不停的调用scrollAnimate这个方法

首先animateUp是一开始定义好的为false在调用scrollAnimate这个方法时为真了.我们看template可以看到这个是class是否有效.也就是说为真时class有效.

setTimeout() 是属于 window 的方法,该方法用于在指定的毫秒数后调用函数或计算表达式。

push是在尾部增加第一条数据,shift删除数组中的第一个项目

第二种方法:插件:vueloopscroll

第三种方法:插件Animate

第四种方法:插件vue-seamless-scroll

第五种方法:chenxuan0000

版权声明:本文为gxh0816原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gxh0816/article/details/122854521

智能推荐

vue实现文字滚动效果

这段时间遇到一个需求, 从后端获取到很多人的名字 需要横向滚动轮播这些名字, 就像商铺门口的电子横幅一样 查了很多的插件 也没有找到自己想要的感觉 于是准备自己写一个通用的组件 创建一个my-marquee.vue文件 然后在需要的地方中使用这个组件即可 参数是一个数组[ "刘德华","张学友"]...

vue文字滚动

文字左右滚动案例 文字上下滚动案例1 3.文字上下滚动案例2...

vue滚动文字

转自:https://www.jianshu.com/p/a68819f143ac 子组件Scroller 滚动文字template(小喇叭megaphone我用的是iview的图标,所以我加了个注释) script部分 样式参考 父组件引用子组件 说明 因为考虑到滚动文字的list可能是ajax请求异步获取的,子组件只在mount时取一次父组件传过来的lists参数,那么得到的lists就是个空...

VUE-文字滚动

HTML JS...

vue文字滚动

   ...

猜你喜欢

Vue做文字滚动

 在JQ22看到的一个小案例,模仿一下 首先在这里可以看出来,要渲染的只有滚动的部分,需求就是每过几秒跳到下一个 先写布局部分: 样式部分:  在vm实例的数据中心,声明一个list数组对象,存放数据: 在视图层的 li 中渲染出来:  因为上面设定了盒子的宽度,并且给父级盒子设置了 溢出隐藏,所以只会显示一条数据, 在城市和销售金额上给上 calss 名,让字体颜色...

Maven配置本地仓库 Maven项目使用本地仓库

Maven配置本地仓库 Maven项目使用本地仓库 项目部署或开发环境没有外网的情况下, 需要配置本地仓库. 由于是在内网环境,maven无法连接互联网,所以只能事先将jar下载到本地,然后通过配置pom文件,将jar引用至本地仓库即可。 修改maven的settings.xml文件 配置本地仓库目录 修改maven项目中的pom.xml 添加如下配置 配置环境变量 参考链接: https://b...