使用vue寫乙個移動端上下滑動的輪播元件

2021-10-10 14:45:22 字數 2347 閱讀 1034

由於業務需求,需要乙個移動端上下滑動的輪播圖功能;

由於沒找到合適的輪子,所以自行寫了乙個;

沒有寫定時器,有需要自行加個就行了;

設計思路很簡單,利用了css的動畫來實現;

先看看效果

注意事項:

<

!-- 上下滑動輪播檢視 --

>

="collection-preview"

>

="img-list"

>

class

="left-prev"

@click=

"onprev"

:style=

"">

="el-icon-arrow-left"

>

<

/i>

<

/div>

class

="right-next"

@click=

"onnext"

:style=

"">

="el-icon-arrow-right"

>

<

/i>

<

/div>

="img-container" ref=

"imgcontainer"

>

v-for=

"(item1, index) in imglist"

:key=

"index"

:class

="[imgindex === index ? 'active' : '']"

:style="`,

transform:

`translatey(

$px) scale($)`

, top: imgindex === index ? eltop +

'px'

:'0px',}"

@touchstart=

"(e) => ontouchstart(e, index)"

@touchmove=

"ontouchmove"

@touchend=

"ontouchend"

>

"item1" v-show=

"index < 3" alt=""/

>

<

/li>

"imglist.length === 0"

>暫無資料<

/li>

<

/ul>

<

/div>

<

/div>

<

/template>

export

default,}

,data()

;}, watch:

this

.imglist =

[...newvalue]

;this

.setpositionlist()

;},}

,},created()

,mounted()

, methods:;}

);},

// 上乙個

onprev()

,// 下乙個

onnext()

,// 拖拽開始

ontouchstart

(e, index)

,// 拖拽移動

ontouchmove

(e)else

if(otop >=

this

.touchmax)

// 減小一倍拖動阻力

this

.eltop = otop *2;

document.

addeventlistener

('touchmove'

,this

.defaultevent,

false);

},// 拖拽移動事件移除

ontouchend()

elseif(

this

.eltop >

this

.touchmax)

this

.eltop =0;

document.

removeeventlistener

('touchmove'

,this

.defaultevent);}

,//阻止預設事件

defaultevent

(e),},

};<

/script>

使用Vue寫乙個登入頁面

為了不浪費大家時間,所以我把這段話放在了開頭。上一部落格講到構建了乙個vue專案,現在在那個專案之上實現乙個登入頁面。因為用到了element ui元件,所以需要先安裝element ui元件,進入專案根目錄後 執行cnpm i element ui構建專案的目錄 自己寫的樣式 import sty...

使用Vue寫乙個登入頁面

上一部落格講到構建了乙個vue專案,現在在那個專案之上實現乙個登入頁面。因為用到了element ui元件,所以需要先安裝element ui元件,進入專案根目錄後 執行cnpm i element ui構建專案的目錄 自己寫的樣式 import style theme.css import sty...

vue實現乙個移動端遮蔽滑動的遮罩層

在扯廢話浪費大家的時間之前,先上個 好了,使用vue實現起來很簡單 對,就是這麼簡單,加上 touchmove.prevent就可以遮蔽滑動頁面了,然後再和普通的遮罩層一樣,加點樣式 遮罩層 overlayer如此,便可以了 vue真是好用啊 如果彈窗不在遮罩層內部,那麼冒泡就不會經過遮罩層,也就無...