vue實(shí)現(xiàn)3D切換滾動(dòng)效果
本文實(shí)例為大家分享了vue實(shí)現(xiàn)3D切換滾動(dòng)效果的具體代碼,供大家參考,具體內(nèi)容如下
今天寫項(xiàng)目,遇到一個(gè)點(diǎn)擊切換的滾動(dòng)需求,貼出來,做一個(gè)記錄

這個(gè)是最終的一個(gè)效果,點(diǎn)擊左右小箭頭,實(shí)現(xiàn)滾動(dòng)效果,但是只是簡單滾動(dòng),沒有動(dòng)畫之類的
實(shí)現(xiàn)思路:
css中,正常寫一個(gè)div用display:flex來平鋪圖片- 然后中間位置定位一個(gè)框,框大小比外面的大,中間圖片隨意取列表中的一個(gè)就行
js中,使用v-for循環(huán)列表- 點(diǎn)擊右側(cè)時(shí),將循環(huán)列表中的第一個(gè)圖片刪除,然后添加到列表最后一個(gè),點(diǎn)擊左側(cè)時(shí)同理,這樣,就能簡單實(shí)現(xiàn)一個(gè)無縫循環(huán)的效果了
- 最重要的一點(diǎn),因?yàn)橹虚g時(shí)梯形,要么就是讓UI給一個(gè)框,前端設(shè)置超出隱藏屬性,達(dá)到梯形效果,要么就是自己用
polygon這個(gè)css屬性調(diào)出一個(gè)多邊形出來
貼一下代碼,看看
// html
// <!-- 滾動(dòng) -->
? ? <div class="rolling">
? ? ? <div class="rolling-container">
? ? ? ? <div
? ? ? ? ? class="rolling-wraper"
? ? ? ? ? v-for="(v, i) in imgList"
? ? ? ? ? :key="i"
? ? ? ? ? @click="handleImg(v)"
? ? ? ? >
? ? ? ? ? <img
? ? ? ? ? ? :src="require(`@/assets/images/home/company/${v.img}.jpg`)"
? ? ? ? ? ? class="img"
? ? ? ? ? />
? ? ? ? </div>
? ? ? ? <!-- 左側(cè)漸變陰影 -->
? ? ? ? <div class="gradient-left"></div>
? ? ? ? <div class="rolling-shadow"></div>
? ? ? ? <!-- 右側(cè)漸變陰影 -->
? ? ? ? <div class="gradient-right"></div>
? ? ? </div>
? ? ? <!-- 中間放大層 -->
? ? ? <div class="photo-bg"></div>
? ? ? <img
? ? ? ? :src="
? ? ? ? ? require(`@/assets/images/home/company/${this.imgList[1].img}.jpg`)
? ? ? ? "
? ? ? ? class="img-large"
? ? ? />
? ? ? <img
? ? ? ? :src="require(`@/assets/images/home/company/photo-bg.png`)"
? ? ? ? class="trapezoidal"
? ? ? />
? ? ? <!-- 底部切換 -->
? ? ? <div class="top-botton">
? ? ? ? <div class="btn-left" @click="previous"></div>
? ? ? ? <div class="center-text">{{ this.imgList[1].text }}</div>
? ? ? ? <div class="btn-right" @click="next"></div>
? ?</div>
</div>// js
data () {
?? ?return {
?? ??? ?imgList: [
?? ? ? ? ? ?{
?? ? ? ? ? ? ?img: 'activity-01',
?? ? ? ? ? ? ?text: '2020年職稱宣傳活動(dòng)',
?? ? ? ? ? ?},
?? ? ? ? ? ?{
?? ? ? ? ? ? ?img: 'activity-02',
?? ? ? ? ? ? ?text: '2020年職稱宣傳活動(dòng)1',
?? ? ? ? ? ?},
?? ? ? ? ? ?{
?? ? ? ? ? ? ?img: 'activity-03',
?? ? ? ? ? ? ?text: '2020年職稱宣傳活動(dòng)2',
?? ? ? ? ? ?},
?? ? ? ? ?],
?? ?}
}
methdos: {
?? ?// 點(diǎn)擊左側(cè)
?? ?previous() {
? ? ? const direction = 'left';
? ? ? this.scrollImg(direction);
? ? },
? ? // 點(diǎn)擊右側(cè)
? ? next() {
? ? ? const direction = 'right';
? ? ? this.scrollImg(direction);
? ? },
? ? // 處理滾動(dòng)列表圖片
? ? scrollImg(direction) {
? ? ? if (direction === 'left') {
? ? ? ? const first = this.imgList.shift();
? ? ? ? this.imgList.push(first);
? ? ? } else {
? ? ? ? const last = this.imgList.pop();
? ? ? ? this.imgList.unshift(last);
? ? ? }
? ? ? console.log();
? ? },
}// css重點(diǎn)代碼 // 繪制多邊形 // 這幾個(gè)屬性為逆時(shí)針旋轉(zhuǎn) ?clip-path: polygon(4% 4%, 1% 90%, 95% 90%, 92% 4%);

具體就根據(jù)設(shè)計(jì)稿慢慢調(diào)整
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue如何實(shí)現(xiàn)動(dòng)態(tài)加載腳本
這篇文章主要介紹了vue如何實(shí)現(xiàn)動(dòng)態(tài)加載腳本,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
vue 監(jiān)聽 Treeselect 選擇項(xiàng)的改變操作
這篇文章主要介紹了vue 監(jiān)聽 Treeselect 選擇項(xiàng)的改變操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
使用Vue指令實(shí)現(xiàn)Markdown渲染和代碼高亮
在前端開發(fā)中,我們經(jīng)常需要將Markdown格式的文本渲染成HTML并展示在頁面上,同時(shí)還希望能夠?qū)Υa塊進(jìn)行高亮顯示,今天我將分享一段代碼,通過Vue指令實(shí)現(xiàn)了這個(gè)功能,需要的朋友可以參考下2023-09-09
Vue數(shù)據(jù)雙向綁定底層實(shí)現(xiàn)原理
這篇文章主要為大家詳細(xì)介紹了Vue數(shù)據(jù)雙向綁定底層實(shí)現(xiàn)原理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
vue-model實(shí)現(xiàn)簡易計(jì)算器
這篇文章主要為大家詳細(xì)介紹了vue-model實(shí)現(xiàn)簡易計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08
vue使用window.open()跳轉(zhuǎn)頁面的代碼案例
這篇文章主要介紹了vue中對window.openner的使用,vue使用window.open()跳轉(zhuǎn)頁面的代碼案例,本文通過實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下2022-11-11
Vuejs 組件——props數(shù)據(jù)傳遞的實(shí)例代碼
本篇文章主要介紹了Vuejs 組件——props數(shù)據(jù)傳遞的實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03

