<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了vue實現列表無縫捲動效果的具體程式碼,供大家參考,具體內容如下
1.安裝
npm install vue-seamless-scroll --save
2.在需要使用的元件中引入進行設定
import vueSeamlessScroll from "vue-seamless-scroll";
在components中注入
components: { vueSeamlessScroll },
3.使用
<template> <div class="seamlessRolling" @click="lookClick($event)"> <vue-seamless-scroll :data="msgData" :class-option="classOption"> <ul> <li v-for="(item, index) in msgData" :key="index"> <span>{{ item.id }}</span> <span>{{ item.title }}</span> <span class="handle" :id="item.id" :data-tit="item.title">檢視</span> </li> </ul> </vue-seamless-scroll> </div> </template> <script> // 這裡可以匯入其他檔案(比如:元件,工具js,第三方外掛js,json檔案,圖片檔案等等) // 例如:import 《元件名稱》 from '《元件路徑》' import vueSeamlessScroll from "vue-seamless-scroll"; export default { // import引入的元件需要注入到物件中才能使用 components: { vueSeamlessScroll }, data() { // 這裡存放資料 return { msgData: [ { id: 1, name: 1, title: "無縫捲動001", }, { id: 2, name: 2, title: "無縫捲動002", }, { id: 3, name: 3, title: "無縫捲動003", }, { id: 4, name: 4, title: "無縫捲動004", }, { id: 5, name: 5, title: "無縫捲動005", }, ], }; }, // 計算屬性 類似於data概念 computed: { classOption() { return { step: 1, // 數值越大速度捲動越快 limitMoveNum: 2, // 開始無縫捲動的資料量 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) }; }, }, // 監控data中的資料變化 watch: {}, // 方法集合 methods: { lookClick(e) { if (e.target.className == "handle") { console.log(e.target.id); console.log(e.target.dataset.tit); } }, }, // 生命週期 - 建立完成(可以存取當前this範例) created() {}, // 生命週期 - 掛載完成(可以存取DOM元素) mounted() {}, beforeCreate() {}, // 生命週期 - 建立之前 beforeMount() {}, // 生命週期 - 掛載之前 beforeUpdate() {}, // 生命週期 - 更新之前 updated() {}, // 生命週期 - 更新之後 beforeDestroy() {}, // 生命週期 - 銷燬之前 destroyed() {}, // 生命週期 - 銷燬完成 activated() {}, // 如果頁面有keep-alive快取功能,這個函數會觸發 }; </script> <style lang='scss' > //@import url(); 引入公共css類 </style> <style lang='scss' scoped> //@import url(); 引入公共css類 * { padding: 0; margin: 0; } .seamlessRolling { margin: 0 auto; width: 300px; height: 200px; border: 1px solid rgb(165, 76, 76); overflow: hidden; ul, li { list-style: none; } li { height: 60px; line-height: 60px; display: flex; justify-content: space-around; .handle { cursor: pointer; } } } </style>
4.設定項說明
data中的msgData為所需要實現捲動的列表資料,計算屬性computeds中classOption為捲動屬性的設定
5.可能會遇到的問題
vue-seamless-scroll是通過將要實現捲動的資料複製一遍來實現無縫捲動,當需要給每一條資料繫結事件時,如果直接繫結,複製出的資料無法系結事件。可以通過事件委託的方式,給列表元素的父元素繫結事件,通過事件物件event,獲取到點選元素的類名進行判斷其是否為需要的元素,將繫結事件所需的id繫結為按鈕id,可以通過event.target.id獲取。或者將所要傳遞的變數繫結為該按鈕的自定義屬性,如data-tit,通過event.target.dataset.tit獲取。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45