Vue实现横向无缝滚动

该博客介绍了如何使用vue-seamless-scroll库创建一个横向滚动的资讯展示组件。当鼠标悬停时,滚动会暂停,鼠标离开后继续滚动。在组件中,作者通过设置配置参数实现了定制化的滚动效果,并提供了安装、引入和配置步骤。
摘要由CSDN通过智能技术生成

需求描述

需要实现一个信息条横向无缝滚动,鼠标移上停止滚动移开继续滚动的效果如下图,

在这里插入图片描述

技术实现

本着高效开发的目的,第一步自然是去找有没有合适现成的轮子就直接用了。果然vue-seamless-scroll就能完美实现以上要求。于是封装了一个基于vue-seamless-scroll的信息横向无缝滚动组件

  1. 安装vue-seamless-scroll
npm install vue-seamless-scroll -S  
  1. 新建marqueex.vue 组件并引入vue-seamless-scroll

    html部分

      <div class="main">
      <div class="left">
        <img src="@/assets/imgs/alarm.png" alt="" />
        <span> 最新资讯: </span>
      </div>
      <div class="right">
        <vue-seamless-scroll
          :data="dataList"
          :class-option="optionLeft"
          class="seamless-warp2"
        >
          <ul class="item">
            <li v-for="(item, index) in dataList" :key="index"  :data-index="index">
              {{
                item
              }}
            </li>
          </ul>
        </vue-seamless-scroll>
      </div>
    </div>
    

    引入部分

    <vue-seamless-scroll></vue-seamless-scroll>
    import vueSeamlessScroll from 'vue-seamless-scroll'   
    components: {
            vueSeamlessScroll
    }, 
    

    配置参数部分

     computed: {
        optionLeft() {
        return {
            step:0.8,
            direction: 2,// 0向下 1向上 2向左 3向右
            // limitMoveNum: this.dataList.length,// 开始无缝滚动的数据量 this.dataList.length
            hoverStop: true,
            openTouch: false,
        };
        },
    },
    
实现Vue 3中的横向无缝滚动,你可以使用CSS和Vue的动态绑定来实现。下面是一个简单的示例: 首先,在你的Vue组件中,添加一个包含要滚动的内容的div元素: ```html <template> <div class="scroll-container"> <div class="scroll-content"> <!-- 这里添加你要滚动的内容 --> </div> </div> </template> ``` 接下来,在CSS中设置滚动容器和内容的样式: ```css .scroll-container { overflow: hidden; /* 隐藏超出容器范围的内容 */ white-space: nowrap; /* 防止内容换行 */ } .scroll-content { display: inline-block; /* 内容横向排列 */ animation: scroll 10s linear infinite; /* 使用动画实现滚动效果,10s是滚动一次的时间,可以根据需要调整 */ } @keyframes scroll { 0% { transform: translateX(0); } /* 初始位置 */ 100% { transform: translateX(-100%); } /* 滚动到最右边时的位置 */ } ``` 最后,在Vue组件的`mounted`生命周期钩子中,通过JavaScript动态计算并设置滚动内容的宽度: ```javascript <template> <!-- ... --> </template> <script> export default { mounted() { const scrollContent = document.querySelector('.scroll-content'); const scrollContainer = document.querySelector('.scroll-container'); scrollContent.style.width = scrollContent.scrollWidth - scrollContainer.offsetWidth + 'px'; } } </script> ``` 这样就实现了一个简单的横向无缝滚动效果。你可以根据需要自定义样式和动画,以适应你的项目需求。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值