1、安装插件
- npm install vue-seamless-scroll --save
- 或者:
- yarn add vue-seamless-scroll
VUE2
引用
- import scroll from 'vue-seamless-scroll'
- Vue.use(scroll)
VUE3 (vite + vue3创建的不支持,因为require已经被丢弃,要额外解决这个问题,点击查看解决方案,当然,解决了也会有下一个问题,比如:requested module '/node_modules/comutils/animationFrame.js?v=32a94d73' does not provide an ...)
vue3强烈推荐 https://github.com/xiaofulzm/vue3-scroll-seamless
引用(vue3因为找不到路径了,所以要加src)
- import vueSeamless from 'vue-seamless-scroll/src'
3、参数配置
参数 描述 默认值 参数类型
step 值越小滚动速度越快越快 1 Number
limitMoveNum 开始无缝滚动最小数据长度 5 Number
hoverStop 是否启用鼠标hover控制 true Boolean
direction 方向0 往下 1 往上 2向左 3向右 1 Number
openTouch 移动端开启touch滑动 true Boolean
singleHeight 单个停止高度(默认为零无缝)=>方向0/1 0 Number
singleWidth 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3 0 Number
waitTime 单步停止等待时间(默认值1000ms) 1000 Number
switchOffset 左右切换按钮距离左右边界的边距(px) 30 Number
autoPlay 是否自动播放开关需要设置为false true Boolean
switchSingleStep 手动单步切换step值(px) 134 Number
switchDelay 单步切换的动画时间(ms) 400 String
switchDisabledClass 不可以点击状态的switch按钮父元素的类名 disabled String
isSingleRemUnit singleHeight and singleWidth是否开启rem度量 false Boolean
4、代码应用
- <!-- 滚动公告 -->
- <div class="base-container-fluid base-bg-white">
- <div class="notice base-container base-flex base-rows base-align-items-center">
- <div class="title">清化公告</div>
- <vue-seamless-scroll
- :data="scrollList"
- :class-option="classOption"
- class="notice-scroll">
- <ul>
- <li v-for="(item,index) in scrollList" :key="index">{{ item.title }}</li>
- </ul>
- </vue-seamless-scroll>
- </div>
- </div>
- <script>
- import vueSeamlessScroll from 'vue-seamless-scroll'
- export default {
- components: {
- vueSeamlessScroll
- },
- data () {
- return {
- scrollList: [
- {
- 'id': 1,
- 'title': '我是通知公告我是通知公告一'
- },
- {
- 'id': 2,
- 'title': '我是通知公告我是通知公告二'
- },
- {
- 'id': 3,
- 'title': '我是通知公告我是通知公告三'
- }
- ],
- classOption: {
- step: 0.3, // 数值越小速度滚动越慢
- limitMoveNum: 1, // 开始无缝滚动的数据量 this.dataList.length
- hoverStop: true, // 是否开启鼠标悬停stop
- direction: 1, // 0向下 1向上 2向左 3向右
- openWatch: false, // 开启数据实时监控刷新dom
- singleHeight: 30, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1
- singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
- waitTime: 2000 // 单步运动停止的时间(默认值1000ms)
- }
- ...
- <style lang="less">
- .notice{
- height: 30px;
- line-height: 30px;
- .title{
- width: 160px;
- color: #FFF;
- font-size: 16px;
- margin-right: 30px;
- background: #38b3ee;
- text-align: center;
- }
- .notice-scroll{
- height: 30px;
- overflow: hidden;
- ul{
- li{
- height: 30px;
- line-height: 30px;
- }
- }
- }
- }
5、展示结果
向上逐条滚动
注意:数据不够时,不滚动;
本文来自于:https://blog.csdn.net/niexier/article/details/108218096