1.滚动效果

2.代码

<div class="page-container" style="">
<vue-seamless-scroll :data="listData" :class-option="defaultOption">
<ul class="ul-scoll">
<li v-for="(item, index) in listData" :key="index">
<span class="title">{{ item.title }}:</span
><span class="date">{{ item.time }}</span>
</li>
</ul>
</vue-seamless-scroll>
</div>
<script>
// 引入vue-seamless-scroll组件
import vueSeamlessScroll from 'vue-seamless-scroll'; export default {
name: 'Demo',
components:{
vueSeamlessScroll
}
data(){
return {
defaultOption: {
step: 1, // 数值越大速度滚动越快
limitMoveNum: 0, // 开始无缝滚动的数据量 this.dataList.length
hoverStop: true, // 是否开启鼠标悬停stop
direction: 1, // 0向下 1向上 2向左 3向右
openWatch: true, // 开启数据实时监控刷新dom
singleHeight: 0, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1
singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
waitTime: 1000, // 单步运动停止的时间(默认值1000ms)
},
listData: [],
}
},
mounted(){
for (let i = 0; i < 3; i++) {
let j = {
title: "无缝滚动序号index:" + i,
time: this.$moment(new Date()).format('YYYY-MM-DD HH:mm'),
};
this.listData.push(j);
}
const len = this.listData.length;
// 这里的目的是为了判断数组的长度是否超出了容器高度,如果超出了则进行无缝滚动,反之就不滚动。
this.defaultOption.limitMoveNum = (len) * 40 > 200 ? len: len+1;
console.log(this.defaultOption.limitMoveNum,len,'::>>>>>0000')
},
methods:{}
}
</script>
<style lang="less">
  .page-container {
    width: 400px;
    height: 200px;
    overflow: hidden;
    border: 1px solid #283dff;
    .ul-scoll {
       li {
         height: 40px;
         line-height: 40px;
         background: rgba(198, 142, 226, 0.4);
       }
    }
   }
</style>

3.使用方法

使用npm安装:
npm install vue-seamless-scroll --save
使用yarn安装:
yarn add vue-seamless-scroll

使用:
注册组件:
//全局注册 main.js文件
import vueSeamlessScroll from 'vue-seamless-scroll';
vue.use(vueSeamlessScroll);
<script>
//单个文件局部注册
  import vueSeamlessScroll from 'vue-seamless-scroll'
  export default {
  components:{
   vueSeamlessScroll
  },
data(){
return{
listData: [
{"title": "无缝滚动了","time": new Date()},
{"title": "无缝滚动了","time": new Date()}
],
classOption: {},
}
},
methods:{

}
  }
</script>
<template>
<vue-seamless-scroll :data="listData" class="wrap" :class-option="classOption">
<ul class="item">
<li v-for="(item, index) in listData" :key="index">
<span class="item.title">{{item.title}}</span>
<span class="item.time">{{item.time}}</span>
</li>
</ul>
</vue-seamless-scroll>
</template>
<style lang="less" scoped>
.wrap{
height: 270px;
width: 400px;
margin: 0 auto;
overflow: hidden;
li{
list-style: none;
padding:0;
margin: 0;
height: 40px;
line-height: 40px;
font-size: 16px;
display: flex;
justify-content: space-between;
}
}
</style>

4.组件配置

listData数据: 无缝滚动list数据。
组件内部只关注listdata数组的length。

classOption:{
step: 1,// 数值越大滚动速度越快,step值不建议太小,不然会有卡顿效果
limitMoveNum:5,//开启无缝滚动的数据量
hoverStop: true, //是否启用鼠标hover控制
direction: 1, //方向 0往下 1往上 2向左 3向右
openTouch: true, // 移动端开启touch滑动
singleHeight: 0, //单步运动停止的高度(默认值0是无缝不停止的滚动),direction为0/1生效
singleWidth: 0,//单步运动停止的宽度, direction为2/3生效
waitTime: 1000, //单步停止等待时间
switchOffset: 30, //左右切换按钮距离左右边界的边距px
autoPlay: true, // 需要实现手动切换左右滚动的时候,必须设置autoPlay: false
}

回调事件:
@ScrollEnd="handleScrollEnd"
methods:{
handleScrollEnd(){
console.log()
}
}

注意点:
1.最外层容器需要手动设置 width, height, overflow:hidden;
2.左右的无缝滚动需要给主内容区域(即默认slot插槽提供)设定合适的css width 属性,也可设置display:flex等
3.step值不建议太小,不然会出现卡顿效果
4.需要实现手动切换左右滚动的时候,必须设置 autoPlay: false.

复杂结构数组属性更新问题:
vue-seamless-scroll组件中的list数据length无变化,仅仅是属性变更,手动调用组件内部的 reset方法即可。
eg: this.$refs.seamlessScroll.reset();

参考链接:

官网文档地址:https://chenxuan0000.github.io/vue-seamless-scroll/zh/guide/

vue-seamless-scroll 组件用法-区域内容滚动效果的更多相关文章

  1. Page Scroll Effects - 简单的页面滚动效果

    Codyhouse 收集了一组页面滚动效果,就是目前大家很常见的用户在浏览网页的时候.一些效果虽然极端,但如果你的目标是创建一个身临其境的用户体验,他们是非常有用的.所有的动画都使用 Velocity ...

  2. Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条

    本博主在一次个人移动端项目中,遇到这么一个需求:希望自己的项目中,头部导航条的效果可以像今日头条那样,横向滚动! 对于这样的效果,在各大移动端项目中几乎是随处可见,为什么呢? 我们都知道,对于移动端也 ...

  3. vue 自定义过度组件用法

    HTML: <div id="example-1"> <button @click="show = !show"> Toggle ren ...

  4. 分享vue ui时间组件用法

    //js code var jiaban = { template:` <i-form v-ref:form_jb :model="form_jb" :rules=" ...

  5. Javascript和jQuery WordPress 图片轮播插件, 内容滚动插件,前后切换幻灯片形式显示

    用于在有限的网页空间内展示一组产品图片或者照片,同时还有非常吸引人的动画效果.本文向大家推荐12款实用的 jQuery 图片轮播效果插件,帮助你在你的项目中加入一些效果精美的图片轮播效果,希望这些插件 ...

  6. Flexslider - 响应式的 jQuery 内容滚动插件

    FlexSlider 是一款轻量的响应式 jQuery 内容滚动插件,能够帮助你在项目轻松的创建漂亮的内容滚动效果.这款插件曾经连续多年入选 WDL 的年度最佳 jQuery 插件,值得大家在网站开发 ...

  7. jQuery实现的向下推送图文信息滚动效果

    HTML 我们以新浪微博信息滚动为背景,html中包含了多条微博图文信息,结构如下: <div id="con"> <ul> <li> < ...

  8. MUI开发APP,scroll组件,运用到区域滚动

    最近在开发APP的过程中,遇到一个问题,就是内容有一个固定的头部和底部.         头部就是我们常用的header了,底部的话,就放置一个button,用来提交页面数据或者进入下一个页面等,效果 ...

  9. VUE移动端音乐APP学习【四】:scroll组件及loading组件开发

    scroll组件 制作scroll 组件,然后嵌套一个 DOM 节点,使得该节点就能够滚动.该组件中需要引入 BetterScroll 插件. scroll.vue: <template> ...

  10. Vue开发组件之替代marquee标签,超出宽度文字横向滚动效果

    一.npm 安装 如果你想安装插件(自己写的)安装 install dependencies npm i marquee-components 使用 在main.js引入 import marquee ...

随机推荐

  1. WinUI 剪裁发布中的一个小坑

    WinUI 3 (以下简称 WinUI)框架发布后的二进制文件过大的问题存在了很长时间,我在这篇文章中有过详细的讨论,好在 Windows App SDK v1.2 就已经支持剪裁发布,但是我却一直没 ...

  2. C#后缀表达式解析计算字符串公式

    当我们拿到一个字符串比如:20+31*(100+1)的时候用口算就能算出结果为3151,因为这是中缀表达式对于人类的思维很简单,但是对于计算机就比较复杂了.相对的后缀表达式适合计算机进行计算. 我们就 ...

  3. A*算法小记

    \(\text{A*}\) 一种启发式搜索 和暴搜的差别是多了一个估价函数,每次取出一个估算最优的状态以期更高效完成任务 重点在于估价函数 \(\text{h*(n)}\) 的设计,若实际代价为 \( ...

  4. 3D模型在线查看工具

    3D场景工具推荐:NSDT场景编辑器. glTF Viewer 2.0是一个可以在线查看GLTF格式3D模型的,可以对模型进行显示设置.灯光设置来查看模型效果,除此之外还可以对模型进行性能分析和模型验 ...

  5. Kmeans中文聚类

    中文文本kmeans聚类原理:K就是将原始数据分为K类,Means即均值点.K-Means的核心就是将一堆数据聚集为K个簇,每个簇中都有一个中心点称为均值点,簇中所有点到该簇的均值点的距离都较到其他簇 ...

  6. 解决MySQL5.5MySQLInstanceConfig最后一步setting报错

    问题描述 在安装过MySQL(或已卸载)的电脑中重新安装MySQL5.5, 在安装最后一项中Processing configuration中最后一项配置失败: 问题解决: 首先关于卸载: 安装时候若 ...

  7. php中的错误异常处理

    作者:小涵 |  阅读: 1636 在PHP5中添加了类似于其它语言的错误异常处理模块.在PHP代码中所产生的异常可被throw语句抛出并被catch语句捕获.需要进行异常处理的代码都必须放入 在PH ...

  8. go+redis实现消息队列发布与订阅

    在做项目过程中,实现websocket得时候,不知道哪里写的不太合适,客户端消息收到一定程度,剩下的消息收不到,修改了缓冲区大小,还是没有解决问题,后面因为项目结束期比较紧张,没有时间调试消息的时候, ...

  9. 如何将PDF文件中的部分信息隐藏或遮盖呢?

      由于工作需要,总是需要对PDF文件中的内容进行部分隐藏.之前,作为VIP,可以使用某软件对PDF中的信息进行部分遮盖,现在,VIP到期了,我也不想继续花钱了(哭穷,嘻嘻)   在信息时代,只要会百 ...

  10. chrome调试秘籍,让你的开发速度飞起来

    前言 熟练使用调试工具,势必能大幅提高我们的开发效率,达到事半功倍的效果.废话不多说,直接进入主题. Filter过滤 过滤器最简单的用法当然是直接输入过滤的字符,但这远远不够.除了直接输入,我们还希 ...