天天看點

vue+Element 跑馬燈loop的循環方向問題解決

1.element和swiper的跑馬燈對比起來,如果是用vue的話,使用element的跑馬燈是非常友善的,但是功能并沒有swiper多,如果你想使用跑馬燈的loop功能,個人建議千萬不要用swiper,如果你隻是loop圖檔,那其實還好,如果loop的資料結構稍微複雜點,能坑死你(針對vue項目,因為在swiper的跑馬燈中是不能使用子元件的,而且dom元素上的所有點選事件全部失效,隻能通過他自帶 的click回調函數操作,非常麻煩,而且資料結構太複雜的話,你還要考慮資料是否具有響應式,這幾天被坑慘了,容我發洩下。。。)

2.需求:需要實作商品清單的跑馬燈效果,且方向始終向右,這裡簡單點,就想成幾張圖檔的跑馬燈效果

2.element的跑馬燈使用很友善,官方也有文檔,但是有些細節并沒有講到,接下來我針對該跑馬燈的loop模式進行幾點說明:

   2.1 :在loop模式下,如果你的跑馬燈隻有2個Carousel-Item(即切換的div),那麼它在運作時,是預設先向右滑動到第二個item,當到第二個即最後一個後,會進行反方向即向左滑動到第一個item,這樣就與我們的需求相悖

   2.2:如果有大于2個的Carousel-Item,那麼它在運作時,是始終向右移動的,正好符合我們的需求

3.解決:由于隻有兩個Carousel-Item的時候滑動方向不是始終一個方向,但是超過2個的時候就是一個方向了,是以我們可以對data(用于loop循環的資料)進行改造,假設目前data =["1","2"],,那麼我們需要将該data改造成["2","1","2","1"],即在首尾分别添加尾 首的資料,實作時,我們可以先設定初始化時的預設幻燈片索引為1,那麼它就能按順序,1212的滑動了,且方向也是相同的了