日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用swiper实现视频和图片混合轮播

發(fā)布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用swiper实现视频和图片混合轮播 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

完成需求:輪播頁面自動滾動循環(huán)播放素材,在視頻頁面自動播放視頻至視頻結(jié)束后繼續(xù)輪播下一個素材,手動切換時視頻頁暫停播放,切換回來后恢復(fù)播放。

1.安裝swiper相關(guān)插件

2.在輪播頁面引入

import?{?Swiper,?SwiperSlide?}?from?"vue-awesome-swiper";

import?"swiper/swiper-bundle.css";

import?Swiper2,?{? Autoplay?}?from?"swiper";

Swiper2.use([Navigation,?Pagination,?EffectFade,?Autoplay]);

此處特別注意,自動播放Autoplay 需要單獨引入,因為swiper單獨對Autoplay?進(jìn)行了打包操作,如果未引入會導(dǎo)致設(shè)置自動播放屬性無效

3.輪播結(jié)構(gòu)

<swiperv-if="carouselList.length>0"class="carousel swiper-container"ref="mySwiper"@slideChange="onSlideChange":options="swiperOption"><swiper-slidev-for="item in carouselList":key="item.id"><imgstyle="width:100%;height:100%"v-if="item.fileType=='IMG'":src="item.fileUrl"alt=""><video:ref="'video'+item.seq"autoplay@ended="videoend"style="width:100%;height:100%;object-fit: fill"v-if="item.fileType=='VIDEO'":src="item.fileUrl"></video></swiper-slide></swiper>

對于video標(biāo)簽,設(shè)置寬高后任然會出現(xiàn)高度與設(shè)置不匹配的問題,添加object-fit: fill屬性

相關(guān)變量設(shè)置

swiperOption:?{

????????autoplay:?{

??????????delay:?2000,

??????????stopOnLastSlide:?false,

??????????disableOnInteraction:?false,?//操作swiper后不會停止播放

????????},

????????loop:?true,

????????speed:?1000,

????????initialSlide:?0,

??????},

相關(guān)方法

onSlideChange(e)?{

??????this.swiper?=?this.$refs.mySwiper.$swiper;

??????console.log(e.activeIndex);

? ? ? // 由于輪播圖前后無縫隙滾動的實現(xiàn)機制,此處索引會出現(xiàn)大于實際素材長度的個數(shù),第0張實際也是最后一張,最后一張后面的一張實際是第一張

??????if?(e.activeIndex?>?this.carouselList.length)?{

????????this.curindex?=?0;

????????return;

??????}

??????if?(e.activeIndex?==?0)?{

????????this.curindex?=?this.carouselList.length?-?1;

????????return;

??????}

??????this.curindex?=?e.activeIndex?-?1;

??????if?(this.carouselList[e.activeIndex?-?1].fileType?==?"VIDEO")?{

? ? ? ?// 如果當(dāng)前頁是視頻,停止輪播圖自動切換,如果視頻是暫停狀態(tài),開始播放

????????this.swiper.autoplay.stop();

????????let?videoele?=?this.$refs["video"?+?e.activeIndex][0];

????????if?(videoele.paused)?{

??????????videoele.play();

????????}

??????}?else?{

? ? ? ? // 當(dāng)前頁是普通圖片,開啟視頻自動輪播,將其他頁面(主要是上一個可能為視頻播放的頁面)正在播放的視頻暫停

????????this.swiper.autoplay.start();

????????this.carouselList.forEach((item,?index)?=>?{

??????????if?(item.fileType?==?"VIDEO")?{

????????????let?videoele?=?this.$refs["video"?+?Number(index?+?1)][0];

????????????videoele.pause();

??????????}

????????});

??????}

????},

總結(jié)

以上是生活随笔為你收集整理的使用swiper实现视频和图片混合轮播的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。