vue-seamless-scroll实现跑马灯效果

本文介绍了如何通过npm或yarn在Vue项目中引入并使用vue-seamless-scroll组件,包括全局和局部注册方法,以及如何在HTML、CSS和JS中实现无缝滚动效果。同时,文章列出了关键注意事项以确保最佳实践。
摘要由CSDN通过智能技术生成

1、引入方式(npm、yarn、browser)

npm

npm insatll vue-seamless-scroll --save

yarn

yarn add vue-seamless-scroll

browser

<script src="vue-seamless-scroll.min.js"></script>

2、注册组件(全局注册、单个.Vue文件局部注册)

//main.js
//1、全局注册 install
import Vue from 'vue'
import scroll from 'vue-seamless-scroll'
Vue.use(scroll)
//或者你可以自己设置全局注册的组件名,默认注册的组件是vue-seamless-scroll
Vue.use(scroll,{componentName:'scroll-seamless'})
//2、单个.Vue文件局部注册
import vueSeamlessScroll from  'vue-seamless-scroll'
	export default {
		name: 'demo',
	     components: {
	        vueSeamlessScroll
	      },
	}

3、使用方式

html

 <vueSeamlessScroll :data='demoList' :class-option="optionHover" class="warp">
				<view class="box" v-for="(item,index) in demoList" :key="index">
							<view class="date">
								<img :src="item.img" alt="">
							</view>
						</view>
			 </vueSeamlessScroll>

注意:class="wrap"必须要给此外容器样式:width、height、overflow: hidden;

js

data() {
			return {
				demoList:[{img:'/static/1.png'},
						{img:'/static/2.png'},
						{img:'/static/3.png'},
						{img:'/static/4.png'},
						{img:'/static/5.png'}],
				//
				step: 3, // 数值越大速度滚动越快
				limitMoveNum: 10, // 开始无缝滚动的数据量 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, 
				
			}
		},
		computed: {
		   optionHover() {
		                return {
		                step: 3, // 数值越大速度滚动越快
		                limitMoveNum: 5, // 开始无缝滚动的数据量 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)
		            };
			}
		},

css

.warp{
				width: 70vw;
				 height: 70vh;
				overflow: hidden;
				.box{
					// width: 70vw;
					//  height: 70vh;
					 
				}
								
			}

注意事项:

  • 1.最外层容器需要手动设置width、height、overflow:hidden

  • 2.左右的无缝滚动需要给主内容区域(即默认slot插槽提供)设定合适的css width属性(否则无法正确计算实际宽度)。 也可以通过给他设置为display:flex;无需设置css width属性

  • 3.step值不建议太小,不然会有卡顿效果(如果设置了单步滚动,step需是单步大小的约数,否则无法保证单步滚动结束的位置是否准确。~~~~~,比如单步设置的30,step不能为4)

  • 4.需要实现手动切换左右滚动的时候,必须设置autoPlay:false(1.1.17版本开始,只需要设置navigation:false),目前不支持环路

  • 5.提供了slot left-switch || right-switch可以自由定义需要的按钮样式 外层有div已经定位了位置居中,距离两边侧的距离可以通过switchOffset参数调整

  • 6.当按钮到达边界位置,会自动为无法点击状态按钮加上定义的switchDisabledClass: 'disabled',可以按需配置

  • 4、完整demo

 5、最后实现的效果

20230901_102336

6、vue-seamless-scroll官方链接:https://chenxuan0000.github.io/vue-seamless-scroll/zh/guide/

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值