关于swiper移动端的坑

本文针对Swiper在移动端的使用问题,提供了减少加载时间的方法,并详细介绍了如何解决安卓APP中Swiper切换不流畅的问题。

这里讲的是swiper兼容移动端的问题

为了提高移动端的加载速度,开发人员手动拿出需要的siwper的样式和js是ok的,
但是这里需要需要注意几点

  • 移动端上的卡顿问题
  • 官方建议代码

移动端上的卡顿问题

如果只引用了swiper的js而没有引入swiper.css和swiper.animate.js,移动端就会出现卡顿问题

<link rel="stylesheet" href="../../styles/library/swiper.min.css"/>  
<script src="../../scripts/common/swiper-3.3.1.min.js"></script>  
<script src="../../scripts/common/swiper.animate.min.js"></script>  

官方建议代码

下面的代码是解决在安卓app出现的问题:切换不流畅

// 轮播图--左右滑动和切换  
   var mySwiper = new Swiper('.swiper-container',{  
       pagination: '.pagination',  
       loop:false,  
       mode: 'horizontal',  
       freeMode:false,  
       touchRatio:0.5,  
       longSwipesRatio:0.1,  
       threshold:50,  
       followFinger:false,  
       observer: true,//修改swiper自己或子元素时,自动初始化swiper  
       observeParents: true,//修改swiper的父元素时,自动初始化swiper  
       onSlideChangeEnd:function(swiper){ // 当滑动结束后---月份日期切换同步左右左右切换  
           changeMonth();  
       }  
   });  

灵感来自于@京都玩家

### 解决 uniapp 中 Swiper 滑动 Video 不跟随的问题 #### 使用 iframe 实现自定义视频组件 针对 `uniapp` 的 `video` 组件在打包成 APP 后存在的层级过高或不随页面滚动的问题,可以采用创建一个新的基于 `iframe` 的视频播放器来替代默认的 `video` 组件。通过这种方式能够有效解决上述提到的问题。 ```vue <!-- nVideo.vue --> <template> <div class="custom-video"> <iframe :src="videoSrc" frameborder="0"></iframe> </div> </template> <script> export default { props: ['src'], computed: { videoSrc() { return this.src; } } }; </script> <style scoped> .custom-video iframe { width: 100%; height: auto; /* 自适应高度 */ } </style> ``` 当需要在一个包含 `swiper` 的页面中使用此自定义视频组件时,只需要像下面这样引入并传递相应的视频源链接给它即可: ```html <n-video :src="'your_video_url_here'"></n-video> ``` 这种方法不仅解决了原生 `video` 组件带来的兼容性布局上的难题,同时也简化了开发流程[^1]。 #### 处理 Swiper Tabs 联动逻辑 对于 `swiper` 滚动时不触发 `tabs` 切换的情况,在确保两者之间存在关联的前提下,可以通过监听 `swiper` 的切换事件,并手动更新对应的 tab 状态;反之亦然——即当点击某个 tab 项时也要同步调整当前显示的 slide 内容。具体做法如下所示: 假设有一个名为 `handleSwiperChange(index)` 函数用于处理 `swiper` 变化后的回调操作,则可以在该函数内部设置选中的 tab 下标等于当前展示的 slide 序号。同理地,如果存在一个叫作 `onTabClick(tabIndex)` 方法负责响应用户的 tab 选择行为的话,那么就应当在此处调用 `swiper` 提供的相关 API 来跳转至指定位置的幻灯片[^2]。 ```javascript // 示例代码片段 methods: { handleSwiperChange(activeIndex) { // 更新激活状态的tab索引为activeIndex this.currentTabIndex = activeIndex; }, onTabClick(selectedTabIndex) { // 让swiper移动到selectedTabIndex所指向的那一张slide上去 this.$refs.mySwiper.swiper.slideTo(selectedTabIndex); } } ``` 以上措施有助于改善用户体验,使得 `swiper` `tabs` 之间的交互更加流畅自然。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值