Vue3中列表滚动组件使用(vue3-seamless-scroll)尝咸淡

github官网

vue3-seamless-scroll

安装

npm install vue3-seamless-scroll --save

当前安装版本 “vue3-seamless-scroll”: “^3.0.2”,

多文件引入

  // **main.js**
  import { createApp } from 'vue';
  import App from './App.vue';
  import vue3SeamlessScroll from "vue3-seamless-scroll";
  const app = createApp(App);
  app.use(vue3SeamlessScroll);
  app.mount('#app');

单文件引用

<script setup name="Index" lang="ts">
	import { Vue3SeamlessScroll, VerticalScroll, HorizontalScroll } from 'vue3-seamless-scroll';
</script>

页面使用

 <div style="height: 33vh; overflow: hidden;">
	 <vertical-scroll v-if="companyList.length !== 0" :hover="true" :list="companyList">
	   <template v-slot="{ data }">
	     <div class="dis-c">
	       <div class="fs18 f-b bg-title" style="text-indent: 1rem">{{ data.nickName }}</div>
	       <div class="dis-r fs14 mt5" style="text-indent: 2rem">地址:{{ data.address }}</div>
	       <div class="dis-r fs14 mt5" style="text-indent: 2rem">电话:{{ data.phone }}</div>
	     </div>
	   </template>
	 </vertical-scroll>
</div>

这里的list结构大致这样

let companyList = ref([
{nickName:"单位1”,adress:"地址1",phone:"12312341234"},
{nickName:"单位2”,adress:"地址2",phone:"12312341235"}
]);

css部分文件

.dis-r {
  display: flex;
  flex-direction: row;
}

.dis-c {
  display: flex;
  flex-direction: column;
}

注意事项

  1. vertical-scroll v-if=“companyList.length !== 0”
    这里需要加v-if 不然页面没反应,不要问为什么,我也不知道,反正加上就对了。
  2. vertical-scroll 外围包裹组件需要加 overflow: hidden; 不然数据列表会飘向九天之外。

其他滚动插件 vue-loop-scroll

vue-loop-scroll

安装

# npm
npm i @joyday/vue-loop-scroll
# pnpm
pnpm i @joyday/vue-loop-scroll
# yarn
yarn add @joyday/vue-loop-scroll

自定义用法

<script setup lang="ts">
  import { ref } from "vue";
  import { LoopScroll } from "@joyday/vue-loop-scroll";

  const dataSource = ref([
    "1. scrolling scrolling scrolling",
    "2. scrolling scrolling scrolling",
    "3. scrolling scrolling scrolling",
    "4. scrolling scrolling scrolling",
  ]);
</script>

<template>
  <div class="box">
    <LoopScroll :dataSource>
      <template #default="{ item }">
        <span style="color: green">{{ item }}</span>
      </template>
    </LoopScroll>
  </div>
</template>

<style scoped>
  .box {
    height: 150px;
    border: 1px solid red;
    :deep(.scroll-loop-item) {
      border-bottom: 1px dashed #000;
      padding: 10px 4px;
    }
  }
</style>
### 如何在 Vue3使用 `vue3-seamless-scroll` 实现滚动效果 为了在 Vue3 项目中实现无缝滚动效果,可以通过安装并配置 `vue3-seamless-scroll` 插件来完成。以下是详细的说明以及一个完整的代码示例。 #### 安装依赖 首先,在项目中通过 npm 或 yarn 安装该插件: ```bash npm install vue3-seamless-scroll --save ``` 或者, ```bash yarn add vue3-seamless-scroll ``` 此操作会将 `vue3-seamless-scroll` 添加到项目的依赖项中[^1]。 --- #### 配置组件 引入 `vue3-seamless-scroll` 并注册为全局或局部组件。如果需要在整个项目中频繁使用,则可以在入口文件(如 main.js)中进行全局注册;否则可以直接在单个页面中导入和使用。 ##### 全局注册方法 在 `main.js` 文件中执行如下代码: ```javascript import { createApp } from &#39;vue&#39;; import App from &#39;./App.vue&#39;; // 导入 vue3-seamless-scroll 组件库 import VSeamlessScroll from &#39;vue3-seamless-scroll&#39;; const app = createApp(App); app.use(VSeamlessScroll); // 注册组件库 app.mount(&#39;#app&#39;); ``` 这样就可以在任何地方直接使用 `<v-seamless-scroll>` 标签。 --- #### 创建滚动列表实例 下面是一个简单的例子,演示如何创建一个带有上下滚动效果的内容列表。 ```html <template> <div class="scroll-container"> <!-- 使用 v-seamless-scroll --> <v-seamless-scroll :options="scrollOptions" class="seamless-warp"> <ul> <li v-for="(item, index) in dataList" :key="index">{{ item }}</li> </ul> </v-seamless-scroll> </div> </template> <script> export default { data() { return { scrollOptions: { step: 0.8, // 数字越大速度越快 limitMoveNum: 2, // 开启限制移动的数量 hoverStop: true, // 是否开启鼠标悬停停止滚动 direction: 1, // 方向:1 表示向下,-1 表示向上 openWatch: true, // 开启数据实时监控刷新 dom,默认关闭 singleHeight: 0, // 单步运动的高度(默认值0是动态获取) waitTime: 1000 // 等待时间 }, dataList: [ &#39;这是第 1 条消息&#39;, &#39;这是第 2 条消息&#39;, &#39;这是第 3 条消息&#39;, &#39;这是第 4 条消息&#39;, &#39;这是第 5 条消息&#39; ] }; } }; </script> <style scoped> .scroll-container { width: 300px; height: 200px; overflow: hidden; border: 1px solid #ccc; } .seamless-warp ul li { padding: 10px 0; text-align: center; } </style> ``` 上述代码展示了如何设置选项参数 `scrollOptions` 和绑定的数据源 `dataList`。其中,`step` 控制滚动的速度,而 `direction` 则决定了滚动的方向(上或下)。此外,还可以调整其他属性来自定义行为[^3]。 --- #### 自定义样式与功能扩展 除了基本的功能外,还能够进一步增强用户体验。例如,当用户点击某条记录时触发事件处理逻辑,或者改变背景颜色以突出显示当前活动项等。 对于更复杂的场景需求,比如多列布局、水平滑动等情况,请参考官方文档中的高级用法部分[^2]。 --- ### 注意事项 - 如果发现滚动不流畅或其他异常现象,请确认浏览器兼容性和 CSS 设置是否正确。 - 数据更新后可能不会立即反映到视图层面上,此时需手动调用 `$forceUpdate()` 方法强制重新渲染 DOM 结构。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值