vue中使用vue-awesome-swiper实现图片轮播效果(超详细解析)

首先我们先了解一下vue-awesome-swiper

什么是vue-awesome-swiper?

Swiper常用于移动端网站的内容触摸滑动
Swiper是纯javascript打造的滑动特效插件,面向手机、平板电脑等移动终端,以及PC端网站。Swiper能实现触屏焦点图、触屏Tab切换、触屏多图切换等常用效果.

安装:

npm install vue-awesome-swiper --save

先看一下我的项目结构吧:

项目创建命令:

vue init webpack whiteware

whiteware是项目名称

安装node.js在这里就不说了,再扯都扯零基础上了

我们这篇博客是为了用vue-awesome-swiper实现轮播效果,这是大佬封装好的一个轮播插件

安装好之后我们需要在项目中src > main.js中引入一下,我这里是全局引入,当然也可以局部引入,看个人需求

import App from './App'
import router from './router'
import axios from 'axios'
import VueAwesomeSwiper from 'vue-awesome-swiper'
import 'swiper/dist/css/swiper.css'


Vue.config.productionTip = false
Vue.use(VueAwesomeSwiper, /* { default global options } */)

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

一定不要忘了Vue.use(VueAwesomeSwiper, /* { default global options } */)

这样我们就可以去组件里用了

当然也可以把轮播单独写一个组件来用,在这里就不那么麻烦了

html:

<!-- 轮播图 -->
<div class="banner" >
	<div class="banner_bg"></div>
	<div class="banner_wrap">
		<!-- 加上v-if="banner_data.length > 1" 来防止swiper出现无法循环播放的效果 -->
		<swiper :options="swiperOption" v-if="bannerList.length>1"  class="banner-swiper-container swiper-container" style="border-radius: 0.15rem;">
			<swiper-slide class="swiper-wrapper" v-for="(item, index) in bannerList" :key="index">
				<a href="" style="border-radius: 0.15rem;">
					<img :src="item.image" :alt="item.title">
				</a>
			</swiper-slide>
		</swiper>
	</div>
</div>

js:

<script>
import { swiper, swiperSlide } from 'vue-awesome-swiper';
export default{
	components:{
	    swiper,
	    swiperSlide
	},
	name:'Index',
	data(){
		return {
			
			// 轮播图
			bannerList: [],        //图片列表
			swiperOption: {
				observeParents:true,
				pagination: '.swiper-pagination',
				paginationClickable: true,		//分页可点击
				slidesPerView: 1,		//每次滑动图片一张
		        slidesPerGroup: 1,		//每个div只有一张图片
				loop: true,				//false 不循环    true循环
				// grabCursor: true,	//鼠标光标
		       	autoplay: {
		        	delay: 2000,		//秒
		        	stopOnLastSlide: false,
		            disableOnInteraction: false,//滑动不会失效
		        },
			},
		}
	},
	
}

css;

/*轮播图*/
	.banner {
	    width: 100%;
	    height: 2.9rem;
	}
	.banner_bg {
	    width:100%;
	    height:1rem;
	    background: -webkit-linear-gradient(left, #fb5524 , #ff3052); /* Safari 5.1 - 6.0 */
		background: -o-linear-gradient(right, #fb5524, #ff3052); /* Opera 11.1 - 12.0 */
	    background: -moz-linear-gradient(right, #fb5524, #ff3052); /* Firefox 3.6 - 15 */
	    background: linear-gradient(to right, #fb5524 , #ff3052); /* 标准的语法 */
	    position:absolute;
	}
	.banner_wrap {
	    padding: 0 0.2rem;
	}
	
	.banner .swiper-container {
	    width: 100%;
	    height: 100%;
	}
	
	.banner .swiper-container .swiper-wrapper {
	    width: 100%;
	    height: 100%;
	}
	
	.banner .swiper-container .swiper-wrapper .swiper-slide {
	    height: 100%;
	}
	
	.banner .swiper-container .swiper-wrapper .swiper-slide img {
	    width: 100%;
	    height: 100%;
	    border-radius: 0.15rem;
	}
	
	.banner .swiper-container .banner-swiper-pagination {
	    bottom: 0;
	    height: 0.3rem;
	}
	
	.banner .swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet {
	    width: 0.24rem;
	    height: 0.04rem;
	    opacity: 1;
	    background: #000;
	    border-radius: 0;
	}
	
	.banner .swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet.swiper-pagination-bullet-active {
	    background: #ffffff;
	}
	
	.scroll-box {
	    position: -webkit-sticky;
	    position: sticky;
	    top: 0;
	    /*height: 100vh;*/
	    overflow: hidden;
	}
	/* END */

以上就是全部代码了,很简单

最后附上一张效果图吧

 

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值