html5移动端轮播滑动效果(swiper实现)

今天开发的项目有个页面需要做一个轮播图效果,我也在网上找了插件,最后通的是swiper插件,和移动端开发比较匹配,官网地址:https://www.swiper.com.cn/,可以在官网查看更多的api和下载插件。

下面介绍一下如何用swiper来实现移动端的轮播图效果。

因为我用的是vue开发的项目,所以我在项目中要先引入了swiper的插件,包括swiper.min.js和swiper.min.css,然后是代码的实现。

引入js和css代码(因为我也用的jquery):

<link rel="stylesheet" type="text/css" href="css/swiper.min.css"/>
<script src="js/swiper.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>

html代码:

<div class="contentOuter">
	<div class="tabTitle">
		<div class="swiper-container">
			<div class="swiper-wrapper">
				<div class="swiper-slide" v-for="(item,index) in tabLists" @click="changeType(index)">
				    <img :src="item.imgSrc" >
					<p :class="{fontItem:index== i}" >{{item.name}}</p>
				</div>
			</div>
		</div>
	</div>
	<!-- 导航按钮 -->
	<div class="swiper-button-prev"></div>
	<div class="swiper-button-next"></div>
</div>

在代码里面我运用了vue中的v-for指令对轮播的内容进行遍历循环,这样可以减少代码的冗余度,tabLists数组中有两个属性:图片的地址imgSrc和需要展示的文字name,可以根据自己的需要进行设置。

js代码:

var mySwiper = new Swiper ('.swiper-container', {
  slidesPerView:5,
  // 前进后退按钮
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
    disabledClass: 'my-button-disabled',
  }
})        

下面介绍一些基本的属性:

slidesPerView:需要在一页展示的个数;

navigation:是一个前进后退组件,其中有以下属性,可以在官网详细查看:官网地址

loop:是否循环轮播,默认为false,也就是滑到一个方向就滑不动了,轮播内容不会循环轮播。

speed:滑动到结束的时间,默认300ms;

direction:滑动的方向,默认是水平方向horizontal,可以设置为竖直方向:vertical;

其他的属性就不一一介绍了,详细的可以去官网查看。

就会实现下面这个效果图:

在运用这个轮播图插件的时候,有一个属性要自己设置,就是总共轮播的内容长度,也就是swiper-wrapper标签,要不然会出现滑动空白的情况。

除此之外我们在使用这个插件的时候,正常情况下左右箭头都是在内容中,官网默认的情况,想要把箭头拿出来放到外面,就要在轮播内容外面包裹一个父级div,然后在这个div中写箭头代码,调整剪头即可。又什么问题欢迎提问,看到就会及时解答!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现手机端轮播图,可以使用Swiper插件。Swiper是一个流行的移动端触摸滑动插件,可以方便地实现轮播图效果。以下是一个简单的实现示例: 1. 引入Swiper插件的CSS和JS文件。 ```html <link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css" /> <script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script> ``` 2. 创建一个HTML容器,并在其中添加轮播图图片。 ```html <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide"><img src="image1.jpg"></div> <div class="swiper-slide"><img src="image2.jpg"></div> <div class="swiper-slide"><img src="image3.jpg"></div> </div> <div class="swiper-pagination"></div> </div> ``` 3. 初始化Swiper插件,并设置参数。 ```javascript var swiper = new Swiper('.swiper-container', { pagination: { el: '.swiper-pagination', }, // 其他参数 }); ``` 其中,`pagination`参数表示要显示分页器,`el`表示分页器的容器选择器。 4. 可点击放大 如果想要实现点击放大的功能,可以使用一些其他的插件,例如PhotoSwipe、lightGallery等。这些插件可以方便地实现图片的放大和缩小效果。以下是一个使用PhotoSwipe实现可点击放大的示例: 1. 引入PhotoSwipe的CSS和JS文件。 ```html <link rel="stylesheet" href="https://unpkg.com/photoswipe/dist/photoswipe.css" /> <link rel="stylesheet" href="https://unpkg.com/photoswipe/dist/default-skin/default-skin.css" /> <script src="https://unpkg.com/photoswipe/dist/photoswipe.min.js"></script> <script src="https://unpkg.com/photoswipe/dist/photoswipe-ui-default.min.js"></script> ``` 2. 在HTML中添加图片,并为它们设置一个共同的类名。 ```html <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide"><img src="image1.jpg" class="my-gallery"></div> <div class="swiper-slide"><img src="image2.jpg" class="my-gallery"></div> <div class="swiper-slide"><img src="image3.jpg" class="my-gallery"></div> </div> <div class="swiper-pagination"></div> </div> ``` 3. 初始化Swiper插件,并添加点击事件。 ```javascript var swiper = new Swiper('.swiper-container', { pagination: { el: '.swiper-pagination', }, // 其他参数 }); var gallery = new PhotoSwipe(document.querySelectorAll('.my-gallery'), PhotoSwipeUI_Default, [], { index: 0, history: false, tapToClose: true, shareEl: false, fullscreenEl: false }); gallery.init(); // 点击事件 document.querySelectorAll('.my-gallery').forEach(function(item) { item.addEventListener('click', function() { var index = Array.prototype.indexOf.call(document.querySelectorAll('.my-gallery'), item); gallery.goTo(index); }); }); ``` 其中,`document.querySelectorAll('.my-gallery')`选择所有拥有`my-gallery`类名的元素,然后为它们添加点击事件。点击事件中,用`indexOf`方法获取当前图片在所有图片中的索引,然后调用`gallery.goTo(index)`方法打开PhotoSwipe插件并显示对应的图片。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值