vue-awesome-swiper 基于vue實(shí)現(xiàn)h5滑動(dòng)翻頁(yè)效果【推薦】
說(shuō)到h5的翻頁(yè),很定第一時(shí)間想到的是swiper。但是我當(dāng)時(shí)想到的卻是,vue里邊怎么用swiper?!
vue-awesome-swiper就是其中一個(gè)前輩們產(chǎn)出的結(jié)晶。就看首尾兩個(gè)單詞,就知道他是vue和swiper的愛(ài)情之子了。
vue-awesome-swiper官網(wǎng)是中文文檔,媽媽再也不用擔(dān)心我讀api啦。“基于 Swiper4、適用于 Vue 的輪播組件”。在產(chǎn)品催著進(jìn)度的緊張環(huán)境下,在四處搜尋解決方案的情況下,這句話簡(jiǎn)直發(fā)著光啊。
具體怎么用,官方文檔寫(xiě)的很清楚,但我還是想記錄下來(lái),好再普及一波。
一、天才第一步,這里沒(méi)有紙尿褲((⊙﹏⊙) 好像暴露了年齡...)
準(zhǔn)備一個(gè)基于vue-cli的項(xiàng)目(或者你自己的腳手架,whatever),沒(méi)有準(zhǔn)備的請(qǐng)移駕vue-cli教程:
http://chabaoo.cn/article/150412.htm
二、在項(xiàng)目目錄下,往node_modules里安裝插件vue-awesome-swiper(可以在項(xiàng)目目錄內(nèi),shift+鼠標(biāo)右鍵,選擇"在此處打開(kāi)命令窗口"),
注釋?zhuān)何疫@里window電腦安裝了,所有右鍵出現(xiàn)的可能和沒(méi)安裝的不一樣,實(shí)在找不到的看這一篇教程:gulp安裝流程、使用方法及CMD常用命令導(dǎo)覽
然后輸入下邊的安裝插件命令
npm i --s vue-awesome-swiper
三、第三步我們依舊沒(méi)有天才牌褲子,所以還是自己一步一步穩(wěn)穩(wěn)走。
1.插件安裝后就是引用插件了,main.js內(nèi)部分三步走:
(1) 引用插件:mainjs注冊(cè)vas
(2) 注冊(cè)插件
注冊(cè)后未use控制臺(tái)就警告了
通過(guò)全局方法 Vue.use() 使用插件后可以了
使用后控制臺(tái)無(wú)錯(cuò)了
(3) 插件樣式(也可以自己寫(xiě),不用人家的)
2.vue項(xiàng)目中使用:
(1) 準(zhǔn)備-template
new a project準(zhǔn)備一個(gè)空項(xiàng)目
初始化html-空結(jié)構(gòu)
(2) 引入-import
(3) 注冊(cè)組件-components
(4) 配置-js(具體配置和swiper的一摸一樣,看swiper官網(wǎng)即可。我這里只說(shuō)下我本次使用的配置的含義)
(5)美化- css
wan~
效果:
代碼:
main.js
import VueAwesomeSwiper from 'vue-awesome-swiper' import 'swiper/dist/css/swiper.css' Vue.use(VueAwesomeSwiper)
zujian.vue
<template> <div class="hello-world"> <!-- <h3>https://github.com/surmon-china/vue-awesome-swiper</h3> --> <!-- <h3>http://www.swiper.com.cn/api/index2.html</h3> --> <!-- http://www.swiper.com.cn/api/parameters/21.html --> <transition name="fade"> <swiper id="swiperBox" v-bind:options="swiperOption" ref="mySwiper"> <!-- 第一頁(yè) --> <swiper-slide class="swiper-slide1"> <div class="page"> <h3>第一頁(yè)</h3> </div> </swiper-slide> <!-- 第二頁(yè) --> <swiper-slide class="swiper-slide2"> <div class="page"> <h3>第二頁(yè)</h3> </div> </swiper-slide> <!-- 第三頁(yè) --> <swiper-slide class="swiper-slide3"> <div class="page"> <h3>第三頁(yè)</h3> </div> </swiper-slide> </swiper> </transition> </div> </template> <script> import { swiper, swiperSlide } from 'vue-awesome-swiper' export default { name: 'HelloWorld', components: { swiper, swiperSlide }, data () { return { swiperOption: { // swiper configs 所有的配置同swiper官方api配置 notNextTick: true,//notNextTick是一個(gè)組件自有屬性,如果notNextTick設(shè)置為true,組件則不會(huì)通過(guò)NextTick來(lái)實(shí)例化swiper,也就意味著你可以在第一時(shí)間獲取到swiper對(duì)象,假如你需要?jiǎng)偧虞d遍使用獲取swiper對(duì)象來(lái)做什么事,那么這個(gè)屬性一定要是true direction: 'vertical',//水平方向移動(dòng) grabCursor: true,//鼠標(biāo)覆蓋Swiper時(shí)指針會(huì)變成手掌形狀,拖動(dòng)時(shí)指針會(huì)變成抓手形狀 setWrapperSize: true,//Swiper使用flexbox布局(display: flex),開(kāi)啟這個(gè)設(shè)定會(huì)在Wrapper上添加等于slides相加的寬或高,在對(duì)flexbox布局的支持不是很好的瀏覽器中可能需要用到。 autoHeight: true,//自動(dòng)高度。設(shè)置為true時(shí),wrapper和container會(huì)隨著當(dāng)前slide的高度而發(fā)生變化 slidesPerView: 1,//設(shè)置slider容器能夠同時(shí)顯示的slides數(shù)量(carousel模式)??梢栽O(shè)置為數(shù)字(可為小數(shù),小數(shù)不可loop),或者 'auto'則自動(dòng)根據(jù)slides的寬度來(lái)設(shè)定數(shù)量。loop模式下如果設(shè)置為'auto'還需要設(shè)置另外一個(gè)參數(shù)loopedSlides。 mousewheel: false,//開(kāi)啟鼠標(biāo)滾輪控制Swiper切換??稍O(shè)置鼠標(biāo)選項(xiàng),默認(rèn)值false mousewheelControl: false,//同上 height: window.innerHeight, // 高度設(shè)置,占滿設(shè)備高度 resistanceRatio: 0,//抵抗率。邊緣抵抗力的大小比例。值越小抵抗越大越難將slide拖離邊緣,0時(shí)完全無(wú)法拖離。本業(yè)務(wù)需要 observeParents: true,//將observe應(yīng)用于Swiper的父元素。當(dāng)Swiper的父元素變化時(shí),例如window.resize,Swiper更新 // 如果自行設(shè)計(jì)了插件,那么插件的一些配置相關(guān)參數(shù),也應(yīng)該出現(xiàn)在這個(gè)對(duì)象中,如下debugger debugger: true, // swiper的各種回調(diào)函數(shù)也可以出現(xiàn)在這個(gè)對(duì)象中,和swiper官方一樣 onTransitionStart(swiper){ console.log(swiper) } } }, computed: { swiper() { return this.$refs.mySwiper.swiper } }, mounted() { // current swiper instance // 然后你就可以使用當(dāng)前上下文內(nèi)的swiper對(duì)象去做你想做的事了 console.log('this is current swiper instance object', this.swiper) this.swiper.slideTo(3, 1000, false) } } </script> <style scoped> .fade-enter-active, .fade-leave-active { transition: opacity .5s } .fade-enter, .fade-leave-to{ opacity: 0 } .swiper-wrapper{ height: 100px; } .swiper-slide1{ background: skyblue; } .swiper-slide2{ background: yellowgreen; } .swiper-slide3{ background: blanchedalmond; } </style>
總結(jié)
以上所述是小編給大家介紹的vue-awesome-swiper 基于vue實(shí)現(xiàn)h5滑動(dòng)翻頁(yè)效果【推薦】,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
vue中使用echarts以及簡(jiǎn)單關(guān)系圖的點(diǎn)擊事件方式
這篇文章主要介紹了vue中使用echarts以及簡(jiǎn)單關(guān)系圖的點(diǎn)擊事件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06vue中的eventBus會(huì)不會(huì)產(chǎn)生內(nèi)存泄漏你知道嗎
這篇文章主要為大家詳細(xì)介紹了vue中的eventBus會(huì)不會(huì)產(chǎn)生內(nèi)存泄漏,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02v-if 導(dǎo)致 elementui 表單校驗(yàn)失效問(wèn)題解決方案
在使用 elementui 表單的過(guò)程中,某些表單項(xiàng)需要通過(guò) v-if 來(lái)判斷是否展示,但是這些表單項(xiàng)出現(xiàn)了檢驗(yàn)失效的問(wèn)題,今天小編給大家介紹v-if 導(dǎo)致 elementui 表單校驗(yàn)失效問(wèn)題解決方案,感興趣的朋友一起看看吧2024-01-01關(guān)于Element Loading的全局使用(自定義Loading)
這篇文章主要介紹了關(guān)于Element Loading的全局使用(自定義Loading),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08Vue 關(guān)閉當(dāng)前頁(yè)、關(guān)閉當(dāng)前標(biāo)簽tagsView的實(shí)現(xiàn)方法
這篇文章主要介紹了Vue 關(guān)閉當(dāng)前頁(yè)、關(guān)閉當(dāng)前標(biāo)簽tagsView,主要有兩種方式,一種是在vue頁(yè)面直接實(shí)現(xiàn),另一種在js文件中寫(xiě)自定義函數(shù),在vue頁(yè)面中調(diào)用,本文通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08在Vue3中為路由Query參數(shù)標(biāo)注類(lèi)型的方法
這篇文章主要介紹了在Vue3中如何為路由Query參數(shù)標(biāo)注類(lèi)型,我們就針對(duì)這個(gè)話題如何為路由Query參數(shù)標(biāo)注類(lèi)型為例,看看Composable和IOC容器的代碼風(fēng)格究竟有什么不同,需要的朋友可以參考下2024-08-08Vue.js實(shí)現(xiàn)實(shí)例搜索應(yīng)用功能詳細(xì)代碼
本文給大家分享Vue.js實(shí)現(xiàn)實(shí)例搜索應(yīng)用功能詳細(xì)代碼,非常不錯(cuò),感興趣的朋友參考下吧2017-08-08