3 回答

TA貢獻1036條經驗 獲得超461個贊
<script?type="text/javascript"> ????//swiper部分,為了各位方便復制我就寫到一個頁面中 ????var?mySwiper?=?new?Swiper('#topNav',?{ ????????freeMode:?true, ????????freeModeMomentumRatio:?0.5, ????????slidesPerView:?'auto', ????}); ????swiperWidth?=?mySwiper.container[0].clientWidth ????maxTranslate?=?mySwiper.maxTranslate(); ????maxWidth?=?-maxTranslate?+?swiperWidth?/?2 ????$(".swiper-container").on('touchstart',?function(e)?{ ????????e.preventDefault() ????}) ????mySwiper.on('tap',?function(swiper,?e)?{ //??e.preventDefault() ????????slide?=?swiper.slides[swiper.clickedIndex] ????????slideLeft?=?slide.offsetLeft ????????slideWidth?=?slide.clientWidth ????????slideCenter?=?slideLeft?+?slideWidth?/?2 ????????//?被點擊slide的中心點 ????????mySwiper.setWrapperTransition(300) ????????if?(slideCenter?<?swiperWidth?/?2)?{ ????????????mySwiper.setWrapperTranslate(0) ????????}?else?if?(slideCenter?>?maxWidth)?{ ????????????mySwiper.setWrapperTranslate(maxTranslate) ????????}?else?{ ????????????nowTlanslate?=?slideCenter?-?swiperWidth?/?2 ????????????mySwiper.setWrapperTranslate(-nowTlanslate) ????????} ????????$("#topNav??.active").removeClass('active') ????????$("#topNav?.swiper-slide").eq(swiper.clickedIndex).addClass('active') ????????$("#topNav?.swiper-slide").eq(swiper.clickedIndex) ????????var?scrollHeight?=?$(".tabSection").eq(swiper.clickedIndex).offset().top; ????????$("html,body").animate({scrollTop:scrollHeight-40}); ????}) ????//jquery部分 ????$(document).ready(function(){ ????????$("html,body").animate({scrollTop:0}); ????????//判斷導航個數 ????????var?tabLength?=?$('.swiper-slide?a').length; ????????//導航高度 ????????var?tabTop?=?$("#topNav").offset().top; ????????//?console.log(tabTop) ????????//分類數組?把每個模塊的高度放進sectop中 ????????var?secTop?=?new?Array(); ????????$(".tabSection").each(function(index)?{ ????????????secTop.push($(this).offset().top); ????????}); ????????$(window).scroll(function(){ ????????????var?winScrollTop?=?$(window).scrollTop(); ????????????//懸浮導航 ????????????if(winScrollTop?>=?tabTop){ ????????????????$("#topNav").addClass("tabFloat"); ????????????}else{ ????????????????$("#topNav").removeClass("tabFloat"); ????????????} ????????????//切換導航 ????????????if(winScrollTop?>=?secTop[secTop.length-1]-100){ ????????????????$("#topNav??.active").removeClass('active') ????????????????$("#topNav?.swiper-slide").eq(secTop.length-1).addClass('active') ????????????}else??if(winScrollTop?<?secTop[0]-100){ ????????????????$("#topNav??.active").removeClass("active"); ????????????}else{ ????????????????for(i?=?0?;?i?<?secTop.length-1?;?i++){ ????????????????????if(winScrollTop?>=?secTop[i]-100?&&?winScrollTop?<?secTop[i+1]-100){ ????????????????????????$("#topNav??.active").removeClass("active"); ????????????????????????$("#topNav??.swiper-slide").eq(i).addClass("active"); ????????????????????} ????????????????} ????????????} ????????}); ????????/*就是這塊用谷歌模擬手機時這塊的事件沒有執行,不知道為什么*/ //????????這里的代碼移動到?51?行了? ????????//滾動到對應專區 //????????$('.swiper-slide').each(function(index)?{ //????????????console.log(this); //????????????$(this).click(function(){ //????????????????var?scrollHeight?=?$(".tabSection").eq(index).offset().top; //????????????????$("html,body").animate({scrollTop:scrollHeight-40}); //????????????}); //????????}); ????}); </script>
點擊事件在Swiper里攔掉了,到不是jquery這一去,可以去了解一下事件冒泡的相關知識

TA貢獻23條經驗 獲得超2個贊
html部分:
<div id="topNav" class="swiper-container">
?<div class="swiper-wrapper">
? ?<div class="swiper-slide ">
? ? ? ?<a ?>
? ? ? ? ?<div ?class="sport">aa</div>
? ? ?</a>
? ?</div>
? ?<div class="swiper-slide">
? ? ? ?<a >
? ? ? ? ? <div ?class="mw">bb</div>
? ? ? ?</a>
? ?</div>
? ?<div class="swiper-slide">
? ? ? ?<a >
? ? ? ? ? <div ?class="bd">cc</div>
? ? ? </a>
? ?</div>
? </div>
</div>
<div class="tabSection">
? /////////////
</div>
<div class="tabSection">
? /////////////
</div>
<div class="tabSection">
? /////////////
</div>
<div class="tabSection">
? /////////////
</div>
- 3 回答
- 0 關注
- 6647 瀏覽
添加回答
舉報