swiper4实现移动端导航切换

本文实例为大家分享了swiper4实现移动端导航切换的具体代码,供大家参考,具体内容如下

首先导入

<link rel="stylesheet" href="css/swiper.min.css" >

<script src="js/jquery-1.10.1.min.js"></script>

<script src="js/swiper.min.js"></script>(这里用的是Swiper 4.0.7版本)

在写入html内容

<div id=header>

<div class="head-top">

<h3>商品分类</h3>

</div>

<div id="nav" class="swiper-container">

<ul class="swiper-wrapper">

<li class="swiper-slide active-nav"><a href="javascript:;" >手机</a></li>

<li class="swiper-slide"><a href="javascript:;">厨具</a></li>

<li class="swiper-slide"><a href="javascript:;">数码</a></li>

<li class="swiper-slide"><a href="javascript:;">家纺</a></li>

<li class="swiper-slide"><a href="javascript:;">生鲜</a></li>

<li class="swiper-slide"><a href="javascript:;">家用电器</a></li>

<li class="swiper-slide"><a href="javascript:;">食品饮料</a></li>

<li class="swiper-slide"><a href="javascript:;">电脑/办公</a></li>

<li class="swiper-slide"><a href="javascript:;">家用日用</a></li>

</ul>

</div>

</div>

<div id="page" class="swiper-container" id="page">

<div class="swiper-wrapper">

<div class="swiper-slide slidepage">手机</div>

<div class="swiper-slide slidepage">厨具</div>

<div class="swiper-slide slidepage">数码</div>

<div class="swiper-slide slidepage">家纺</div>

<div class="swiper-slide slidepage">生鲜</div>

<div class="swiper-slide slidepage">家用电器</div>

<div class="swiper-slide slidepage">食品饮料</div>

<div class="swiper-slide slidepage">电脑/办公</div>

<div class="swiper-slide slidepage">家用日用</div>

</div>

</div>

最后调用swiper

<script>

var myNav = new Swiper('#nav', {

spaceBetween: 10,

slidesPerView : 3,

watchSlidesProgress : true,

watchSlidesVisibility : true,

on:{

tap: function(){

myPage.slideTo( myNav.clickedIndex)

}

}

})

var myPage = new Swiper('#page',{

on:{

slideChangeTransitionStart: function(){

updateNavPosition()

}}

})

function updateNavPosition(){

$('#nav .active-nav').removeClass('active-nav');

var activeNav = $('#nav .swiper-slide').eq(myPage.activeIndex).addClass('active-nav');

if (!activeNav.hasClass('swiper-slide-visible')) {

console.log(1);

if (activeNav.index()>myNav.activeIndex) {

console.log(2);

var thumbsPerNav = Math.floor(myNav.width/activeNav.width())-1

myNav.slideTo(activeNav.index()-thumbsPerNav)

}

else {

console.log(3);

myNav.slideTo(activeNav.index())

}

}

}

</script>

全部代码如下:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>商品分类</title>

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />

<link rel="stylesheet" href="css/swiper.min.css" >

<script src="js/jquery-1.10.1.min.js"></script>

<script src="js/swiper.min.js"></script>

<style>

*{padding:0;margin:0;font-size:20px;color:#333;}

html{background:#fff;}

a{text-decoration:none;}

body{max-width:640px;margin:0 auto;position:relative;background:#ccc;overflow:hidden;}

img{width:100%;border:0;}

li{list-style:none;}

.head-top{height:36px;position:fixed;top:0;left:0;text-align:center;width:100%;line-height:36px;}

.swiper-containee{max-width:640px;}

#nav{margin-top:36px;border-bottom:1px solid #999;padding:10px;}

#nav li{text-align:center;}

.active-nav{

color:#fff;

background:#ddd !important;

}

.active-nav a{

color:#fff;

background:#ddd !important;

}

#page .swiper-slide{height:6rem;}

</style>

</head>

<body>

<div id=header>

<div class="head-top">

<h3>商品分类</h3>

</div>

<div id="nav" class="swiper-container">

<ul class="swiper-wrapper">

<li class="swiper-slide"><a href="javascript:;" >手机</a></li>

<li class="swiper-slide"><a href="javascript:;" >厨具</a></li>

<li class="swiper-slide"><a href="javascript:;" >数码</a></li>

<li class="swiper-slide"><a href="javascript:;" >家纺</a></li>

<li class="swiper-slide"><a href="javascript:;" >生鲜</a></li>

<li class="swiper-slide"><a href="javascript:;" >家用电器</a></li>

<li class="swiper-slide"><a href="javascript:;" >食品饮料</a></li>

<li class="swiper-slide"><a href="javascript:;" >电脑/办公</a></li>

<li class="swiper-slide"><a href="javascript:;" >家用日用</a></li>

</ul>

</div>

</div>

<div id="page" class="swiper-container" id="page">

<div class="swiper-wrapper">

<div class="swiper-slide slidepage">手机</div>

<div class="swiper-slide slidepage">厨具</div>

<div class="swiper-slide slidepage">数码</div>

<div class="swiper-slide slidepage">家纺</div>

<div class="swiper-slide slidepage">生鲜</div>

<div class="swiper-slide slidepage">家用电器</div>

<div class="swiper-slide slidepage">食品饮料</div>

<div class="swiper-slide slidepage">电脑/办公</div>

<div class="swiper-slide slidepage">家用日用</div>

</div>

</div>

<script>

var myNav = new Swiper('#nav', {

spaceBetween: 10,

slidesPerView : 3,

watchSlidesProgress : true,

watchSlidesVisibility : true,

on:{

tap: function(){

myPage.slideTo( myNav.clickedIndex)

}

}

})

var myPage = new Swiper('#page',{

on:{

slideChangeTransitionStart: function(){

updateNavPosition()

}}

})

function updateNavPosition(){

$('#nav .active-nav').removeClass('active-nav');

var activeNav = $('#nav .swiper-slide').eq(myPage.activeIndex).addClass('active-nav');

if (!activeNav.hasClass('swiper-slide-visible')) {

console.log(1);

if (activeNav.index()>myNav.activeIndex) {

console.log(2);

var thumbsPerNav = Math.floor(myNav.width/activeNav.width())-1

myNav.slideTo(activeNav.index()-thumbsPerNav)

}

else {

console.log(3);

myNav.slideTo(activeNav.index())

}

}

}

</script>

</body>

</html>

以上是 swiper4实现移动端导航切换 的全部内容, 来源链接: utcz.com/z/318367.html

回到顶部