用swiper可隐藏滑动导航和内容滑动联动

在一次实现导航可滑动 内容可滑动 内容滑动导航跟着滑动的过程中遇见的问题

我要实现类似今日头条导航滑动 和内容联动导航滑动的功能

swiper实现 原先用swiper的控制器 出现滑动到导航没空间时出现ui错误

之后想用分页器来做 但是分页器分页一行不能超出滑动

只能用内容swiper控制顶部swiper

效果如 滑动导航还有更多选项

本人做的是微信开发 用swiper和vue 现贴出自己代码

我的值是监听onSlideChangeStart进行来触发但是遇见一个bug

onSlideChangeStart和onSlideChangeEnd竟然偶尔触发不到;

解决方法:

1.添加 fade:{crossFade:true}

2.切换之后效果, 使用 onSlideChangeEnd(page切换后触发) 会偶尔不触发, 请使用 onTransitionEnd(过度效果结束触发)

现在我们应用到代码中

<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0">
<title>WeUI</title>
<link rel="stylesheet" href="/new/css/weui.css"/>
<link rel="stylesheet" href="/new/css/swiper.min.css">
<link rel="stylesheet" href="/new/css/index.css">
</head>
<body ontouchstart>
<div class="page">
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide"><a href="javascript:;" v-bind:class={"tabtive":tabval==0} v-on:click="tab(0)">全部</a></div>
<div class="swiper-slide"><a href="javascript:;" v-bind:class={"tabtive":tabval==1} v-on:click="tab(1)">文玩配饰</a></div>
<div class="swiper-slide"><a href="javascript:;" v-bind:class={"tabtive":tabval==2} v-on:click="tab(2)">琥珀蜜蜡</a></div>
<div class="swiper-slide"><a href="javascript:;" v-bind:class={"tabtive":tabval==3} v-on:click="tab(3)">白玉翡翠</a></div>
<div class="swiper-slide"><a href="javascript:;" v-bind:class={"tabtive":tabval==4} v-on:click="tab(4)">文玩杂项</a></div>
<div class="swiper-slide"><a href="javascript:;" v-bind:class={"tabtive":tabval==5} v-on:click="tab(5)">注目雕件</a></div>
<div class="swiper-slide"><a href="javascript:;" v-bind:class={"tabtive":tabval==6} v-on:click="tab(6)">玉石</a></div>
</div>
</div>
<div class="swiper-container2">
<div class="swiper-wrapper">
<!--全部-->
<div class="swiper-slide">
<ul>
<li class="product-item">
<a href="javascript:;" class = "external" style="display:block;">
<div class="img"><img src="http://qsh.bjkunya.com/Uploads/2017-06-27/20170627173524595226dc46066_360x360.jpg" class="" title="http://qsh.bjkunya.com/Uploads/2017-06-27/20170627173524595226dc46066_360x360.jpg" class="lazy"></div>
<div class="detail">
<p class="user"><span class="my-font">龙的传人1</span></p>
<span class="my-area">北京市</span>
<span class="my-span">
<span class="" data="">00:00:00</span></span>
</div>
</a>
</li>
<li class="product-item">
<a href="javascript:;" class = "external" style="display:block;">
<div class="img"><img src="http://qsh.bjkunya.com/Uploads/2017-06-27/20170627173524595226dc46066_360x360.jpg" class="" title="http://qsh.bjkunya.com/Uploads/2017-06-27/20170627173524595226dc46066_360x360.jpg" class="lazy"></div>
<div class="detail">
<p class="user"><span class="my-font">龙的传人1</span></p>
<span class="my-area">北京市</span>
<span class="my-span">
<span class="end_{$g.id}" data="{$g.end_time}">00:00:00</span></span>
</div>
</a>
</li>
</ul>
</div>
<div class="swiper-slide">问1</div>
<div class="swiper-slide">问2</div>
<div class="swiper-slide">问3</div>
<div class="swiper-slide">问4</div>
<div class="swiper-slide">问5</div>
<div class="swiper-slide">问6</div>
</div>
<div class="my-more"><div class="font-more">上拉刷新加载更多</div><i class="ibg b_ibg"></i></div>
</div>
<div class="weui-tab__panel">
<div class="weui-tab1" v-show="tabval==1">
</div>
<div class="weui-tab2" v-show="tabval==2">2</div>
<div class="weui-tab3" v-show="tabval==3">3</div>
</div>
</div>
<script src="/new/js/zepto.min.js"></script>
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script src="https://res.wx.qq.com/open/libs/weuijs/1.0.0/weui.min.js"></script>
<script src="/new/js/vue.min.js"></script>
<!-- Swiper JS -->
<script src="/new/js/swiper.min.js"></script>
<!-- Initialize Swiper -->
<script type="text/javascript">
$(function(){
var vue1= new Vue({
el: '.swiper-container',
data: {
tabval:0,
message: '<h1>菜鸟教程</h1>',
},
mounted:function(){
this.myswiper1();
},
methods:{
tab:function(n){
this.tabval=n;
this.swiper2.slideTo(n, 1000, false);//切换到第一个slide,速度为1秒
},
myswiper1:function(n){
this.swiper1 = new Swiper('.swiper-container',{
slidesPerView: 4,
loop : false,
loopAdditionalSlides : 1,
paginationClickable: true,
});

var _this=this;
this.swiper2 = new Swiper('.swiper-container2',{
//slidesPerView: 0,
initialSlide : n,
parallax:"percentage",

onTransitionEnd: function (swiper) {

_this.tabval=swiper.activeIndex;
_this.swiper1.slideTo(swiper.activeIndex, 1000, false);
},


/**onSlideChangeEnd:function(swiper){
_this.tabval=swiper.activeIndex;
},
onSlideChangeStart:function(swiper){

_this.tabval=swiper.activeIndex;
_this.swiper1.slideTo(swiper.activeIndex, 1000, false)
}这里造成偶尔不触发所以我们不用这两个方法回调**/
});
}
}
})
});
</script>

 

 

作者:梁青竹

转载于:https://www.cnblogs.com/itadong/p/7097974.html

要监听vue-awesome-swiper滑动事件,你可以使用swiper实例的on方法来绑定事件。首先,在你的Vue组件中引入vue-awesome-swiper并安装,在main.js中添加以下代码: 引用:一、引入swiper 安装 npm install swiper vue-awesome-swiper --save 引用:import vueAwesomeSwiper from 'vue-awesome-swiper' Vue.use(vueAwesomeSwiper); 然后,在你的Vue组件中,创建一个swiper实例,并在mounted生命周期钩子中使用on方法监听滑动事件,如下所示: new Swiper('.swiper-container', { on: { slideChange: function () { // 滑动事件处理逻辑 } } }); 通过上述代码,你可以监听到swiper滑动事件,并在slideChange回调函数中处理滑动事件的逻辑。你可以根据具体需求来编写滑动事件的处理代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vue整屏滚动切换vue-awesome-swiper](https://blog.csdn.net/bocongbo/article/details/82876348)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue中使用swiper实现页面内容滑动以及导航栏之间的联动效果](https://blog.csdn.net/renjiantaotie/article/details/113976397)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值