欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue使用swiper插件實(shí)現(xiàn)垂直輪播圖

 更新時(shí)間:2023年01月14日 10:55:17   作者:零Suger  
這篇文章主要介紹了vue使用swiper插件實(shí)現(xiàn)垂直輪播圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用swiper插件做垂直輪播圖

1.下載安裝

cnpm install swiper vue-awesome-swiper --save

2.main.js:

import Vue from 'vue'

import VueAwesomeSwiper from 'vue-awesome-swiper'
import "swiper/swiper-bundle.min.css";
Vue.use(VueAwesomeSwiper)
//配置分頁(yè)器
import {Swiper as SwiperClass,Pagination} from 'swiper'; 
SwiperClass.use([Pagination]);

3.vue頁(yè)面:

<template>
  <div v-swiper:mySwiper="swiperOption">
    <div class="swiper-wrapper">
      <div class="swiper-slide">slide 1</div>
      <div class="swiper-slide">slide 2</div>
      <div class="swiper-slide">slide 3</div>
    </div>
    <div class="swiper-pagination" slot="pagination"></div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      swiperOption: {
        direction: "vertical", //設(shè)置豎向輪播
        pagination: {
          el: ".swiper-pagination",
          clickable:true,
        },
        on: {
          slideChangeTransitionEnd: function () {
            // this.activeIndex 是索引index,這個(gè)用this才可以獲取到
            console.log(this.activeIndex);
          },
        },
      },
    };
  },
  mounted() {
    this.mySwiper.slideTo(0, 1000, false);
  },
};
</script>
<style scoped>
.swiper-container {
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}
.swiper-slide {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  align-items: center;
  font-size: 2rem;
}
</style>

效果圖:

注:我安裝的當(dāng)前版本是"swiper": “^7.3.3”,“vue-awesome-swiper”: “^4.1.1”,

swiper輪播插件使用 一次顯示多個(gè)slides

**項(xiàng)目中需要實(shí)現(xiàn)下圖效果 **

demo 代碼 拿來即用,引用的地址是 CDN 資源

<!DOCTYPE html>
<html lang="en">

	<head>
		<meta charset="utf-8">
		<title>Swiper demo</title>
		<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">

		<!-- Link Swiper's CSS -->
		<!-- <link rel="stylesheet" href="../package/swiper-bundle.min.css"> -->
		<link rel="stylesheet" >
		<!-- Demo styles -->
		<style>
			html,
			body {
				position: relative;
				height: 100%;
			}

			body {
				background: #eee;
				font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
				font-size: 14px;
				color: #000;
				margin: 0;
				padding: 0;
			}

			.swiper-container {
				width: 100%;
				height: 210px;
				position: absolute;
				left: 0;
				bottom: 11px;
			}

			.swiper-slide {
				text-align: center;
				font-size: 18px;
				background: #fff;

				/* Center slide text vertically */
				display: -webkit-box;
				display: -ms-flexbox;
				display: -webkit-flex;
				display: flex;
				-webkit-box-pack: center;
				-ms-flex-pack: center;
				-webkit-justify-content: center;
				justify-content: center;
				-webkit-box-align: center;
				-ms-flex-align: center;
				-webkit-align-items: center;
				align-items: center;
			}

			.swiper-button-prev,
			.swiper-button-next {
				width: 56px;
				height: 56px;
				background: #9999;
				border-radius: 50%;
				font-size: 16px;
				color: #ffff;
			}

			.swiper-button-prev:after,
			.swiper-button-next:after {
				font-size: 28px;
			}

			.swiper_item {
				font-size: 14px;
				/* opacity: 0.3; */
				background: transparent;
			}

			.track_box {
				height: 100%;
				margin-right: 10px;
				background: #fff;
				border-radius: 5px;
				box-sizing: border-box;
				overflow: hidden;
			}

			.track_time {
				width: 50px;
				height: 100%;
				-webkit-writing-mode: vertical-rl;
				writing-mode: vertical-rl;
				line-height: 32px;
				font-size: 12px;
				background: #6e6e6e;
				color: #FFFFFF;
				border-radius: 5px;
				letter-spacing: 0.2em;
			}

			.track_interval {
				background: #3385ff;
				color: #fff;
				height: 30px;
				line-height: 30px;
				text-align: left;
				padding: 0 0 0 10px;
			}

			.track_box .text {
				height: calc(100% - 36px);
				overflow: hidden;
				padding: 0 10px;
			}

			.text p {
				line-height: 1.8em;
			}

			.text div {
				text-align: left;
				color: #3385ff;
			}
		</style>
	</head>

	<body>
		<!-- Swiper -->
		<div class="swiper-container">
			<div class="swiper-wrapper">
				
			</div>
			<!-- 如果需要導(dǎo)航按鈕 -->
			<div class="swiper-button-prev"></div>
			<div class="swiper-button-next"></div>
		</div>

		<!-- Swiper JS -->
		<!--  <script src="../package/swiper-bundle.min.js"></script> -->
		<script src="https://unpkg.com/swiper/swiper-bundle.js"> </script>
		<!-- Initialize Swiper -->
		<script>
			var strText = `
					<div class="swiper-slide swiper_item" >
						<div class="track_box">
							<div class="track_interval">時(shí)間: 10/22 10:25-12:48</div>
							<div class="text">
								<p>從:河南省鄭州市中原區(qū)山寨街道嵩山南路,河南工業(yè)大學(xué)(嵩山路校區(qū))</p>
								<p>到: 從:河南省鄭州市中原區(qū)山寨街道嵩山南路,河南工業(yè)大學(xué)(嵩山路校區(qū))</p>
								<div>形勢(shì)時(shí)間: 2小時(shí)23分鐘</div>
							</div>
						</div>
						<div class="track_time">
							停留時(shí)間常3個(gè)小時(shí)12分鐘
						</div>
					</div>
			`;
			for(var i = 0 ; i < 3 ; i++){
				$('.swiper-wrapper').append(strText);
			}

			var swiper = new Swiper('.swiper-container', {
				slidesPerView: 'auto', //設(shè)置slider容器能夠同時(shí)顯示的slides數(shù)量(carousel模式)。
				autoplay: false, //設(shè)置為true啟動(dòng)自動(dòng)切換,并使用默認(rèn)的切換設(shè)置。
				direction: 'vertical', //設(shè)置滑動(dòng)方向
				centeredSlides: false,  //設(shè)定為true時(shí),active slide會(huì)居中,而不是默認(rèn)狀態(tài)下的居左。
				observeParents: true, //這個(gè)是啟動(dòng)動(dòng)態(tài)檢查器(OB/觀眾/觀看者),當(dāng)改變swiper的樣式(例如隱藏/顯示)或者修改swiper的子元素時(shí),自動(dòng)初始化swiper。
				grabCursor: true,  //置為true時(shí),鼠標(biāo)覆蓋Swiper時(shí)指針會(huì)變成手掌形狀,拖動(dòng)時(shí)指針會(huì)變成抓手形狀。(根據(jù)瀏覽器形狀有所不同)
				autoplayDisableOnInteraction: false,  //是否禁止autoplay。默認(rèn)為true:停止。
				mousewheel: {	//開啟鼠標(biāo)滾輪控制Swiper切換??稍O(shè)置鼠標(biāo)選項(xiàng),或true使用默認(rèn)值。 默認(rèn)1 
					sensitivity : 2,
				  },
				autoHeight: true, //自動(dòng)高度。設(shè)置為true時(shí),wrapper和container會(huì)隨著當(dāng)前slide的高度而發(fā)生變化。
				observer: true, //修改swiper自己或子元素時(shí),自動(dòng)初始化swiper
				preventClicks : false, //默認(rèn)true
				preventClicksPropagation : true,  //阻止click冒泡。拖動(dòng)Swiper時(shí)阻止click事件
				slideToClickedSlide:true,  //設(shè)置為true則點(diǎn)擊slide會(huì)過渡到這個(gè)slide。
				scrollbar: {           //為Swiper增加滾動(dòng)條。
				    el: '.swiper-container',
				  },
				navigation: {
					nextEl: '.swiper-button-next',
					prevEl: '.swiper-button-prev',
				},
			});

		</script>
	</body>

</html>

居于右側(cè)貼邊顯示 ,以鼠標(biāo)滾動(dòng)滑動(dòng)列表(調(diào)整了css.和 swiper 配置屬性)

<!DOCTYPE html>
<html lang="en">

	<head>
		<meta charset="utf-8">
		<title>Swiper demo</title>
		<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">

		<!-- Link Swiper's CSS -->
		<!-- <link rel="stylesheet" href="../package/swiper-bundle.min.css"> -->
		<link rel="stylesheet" >
		<!-- Demo styles -->
		<style>
			html,
			body {
				position: relative;
				height: 100%;
			}

			body {
				background: #eee;
				font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
				font-size: 14px;
				color: #000;
				margin: 0;
				padding: 0;
			}

			.swiper-container {
				width: 300px;
				height: 100%;
				position: absolute;
				bottom: 0;
				right: 5px;
			}

			.swiper-slide {
				text-align: center;
				font-size: 18px;
				background: #fff;

				/* Center slide text vertically */
				display: -webkit-box;
				display: -ms-flexbox;
				display: -webkit-flex;
				display: flex;
				-webkit-box-pack: center;
				-ms-flex-pack: center;
				-webkit-justify-content: center;
				justify-content: center;
				-webkit-box-align: center;
				-ms-flex-align: center;
				-webkit-align-items: center;
				align-items: center;
			}

			.swiper-button-prev,
			.swiper-button-next {
				width: 56px;
				height: 56px;
				background: #9999;
				border-radius: 50%;
				font-size: 16px;
				color: #ffff;
			}

			.swiper-button-prev:after,
			.swiper-button-next:after {
				font-size: 28px;
			}

			.swiper_item {
				font-size: 14px;
				flex-direction: column;
				background: transparent;
			}

			.track_box {
				height: 100%;
				background: #fff;
				border-radius: 5px;
				box-sizing: border-box;
				overflow: hidden;
				margin: 5px 0;
			}

			.track_time {
				width: 100%;
				height: auto;
				line-height: 32px;
				font-size: 12px;
				background: #e5e5e5;
				color: #333;
				border-radius: 5px;
				letter-spacing: 0.2em;
				font-weight: 600;
			}

			.track_interval {
				height: 30px;
				line-height: 30px;
				text-align: left;
				padding: 0 0 0 10px;
			}

			.track_box .text {
				padding: 0 10px;
			}

			.text p {
				line-height: 1em;
			}

			.text div {
				text-align: left;
				color: #3385ff;
			}

			.track_time,
			.track_box {
				border: 1px solid #d8d8d7;
			}
		</style>
	</head>

	<body>
		<!-- Swiper -->
		<div class="swiper-container">
			<div class="swiper-wrapper" id="xc">


			</div>
		</div>

		<!-- Swiper JS -->
		<!--  <script src="../package/swiper-bundle.min.js"></script> -->
		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.10.0/jquery.js"></script>
		<script src="https://unpkg.com/swiper/swiper-bundle.js"> </script>
		<!-- Initialize Swiper -->
		<script>
			var strText = `
					<div class="swiper-slide swiper_item" >
						<div class="track_box">
							<div class="track_interval">時(shí)間: 10/22 10:25-12:48</div>
							<div class="text">
								<p>從:河南省鄭州市中原區(qū)山寨街道嵩山南路,河南工業(yè)大學(xué)(嵩山路校區(qū))</p>
								<p>到: 從:河南省鄭州市中原區(qū)山寨街道嵩山南路,河南工業(yè)大學(xué)(嵩山路校區(qū))</p>
								<div>形勢(shì)時(shí)間: 2小時(shí)23分鐘</div>
							</div>
						</div>
						<div class="track_time">
							停留時(shí)間常3個(gè)小時(shí)12分鐘
						</div>
					</div>
			`;
			for(var i = 0 ; i < 3 ; i++){
				$('.swiper-wrapper').append(strText);
			}
			var swiper = new Swiper('.swiper-container', {
				slidesPerView: 'auto', //設(shè)置slider容器能夠同時(shí)顯示的slides數(shù)量(carousel模式)。
				autoplay: false, //設(shè)置為true啟動(dòng)自動(dòng)切換,并使用默認(rèn)的切換設(shè)置。
				direction: 'vertical', //設(shè)置滑動(dòng)方向
				centeredSlides: false,
				grabCursor: true, //置為true時(shí),鼠標(biāo)覆蓋Swiper時(shí)指針會(huì)變成手掌形狀,拖動(dòng)時(shí)指針會(huì)變成抓手形狀。(根據(jù)瀏覽器形狀有所不同)
				autoplayDisableOnInteraction: false, //是否禁止autoplay。默認(rèn)為true:停止。
				mousewheel: true, //開啟鼠標(biāo)滾輪控制Swiper切換。可設(shè)置鼠標(biāo)選項(xiàng),或true使用默認(rèn)值。
				autoHeight: true, //自動(dòng)高度。設(shè)置為true時(shí),wrapper和container會(huì)隨著當(dāng)前slide的高度而發(fā)生變化。
			});

		</script>
	</body>

</html>


Swiper 動(dòng)態(tài)加載數(shù)據(jù)遇到的坑

我們?cè)趯戫?xiàng)目的時(shí)候,很多swiper的數(shù)據(jù)都是動(dòng)態(tài)獲取到的,我們?cè)趧傔M(jìn)入頁(yè)面的時(shí)候,初始化了swiper,但是當(dāng)我們加載成功數(shù)據(jù)后(比如ajax獲取數(shù)據(jù)),swiper的子元素被改變了,于是swiper就不能正常執(zhí)行了

主要代碼,就是下面的屬性

observer: true, //修改swiper自己或子元素時(shí),自動(dòng)初始化swiper

observeParents: true, //修改swiper的父元素時(shí),自動(dòng)初始化swiper

如果上面的方法還不行: 

其實(shí)還有另一種方法,就是在加載數(shù)據(jù)成功之后,再次初始化swiper

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論