话说在前头:前端开发同学遇到这个问题不慌,因为接下来你要踩的坑我都帮你们踩完了,所以有了这一篇博客。希望能帮到你

   轮播组件:swiper@4.5.1 (4x稳定的最后一个版本)

   设备:ios版本15x ,14和16版本都挺好的,问题仅在ios15的版本

   出现现象:左右滑动卡顿,不连手,放开的这一瞬间会卡一下。在同一部手机的safari或微信中没有这个问题,仅仅在app中有这个问题。

  一些案例:https://ask.csdn.net/questions/7544894   https://juejin.cn/post/7023231843004579877

  当然全都没有解决办法,只是都遇到。

  我试过了网上几乎所有办法,3x和5x版本都换过,无果...

  ok,网上找不到解决办法,老规矩,上github翻翻issue,有用,但不是特别有用。

  办法1: 升级5x版本,有个新增的属性  cssMode  这个属性开启后用现代CSS Scroll Snap API。它不支持Swiper的很多功能,但可能会带来更好的性能。 会将一些js复杂的运算和过渡用css来代替

  但是:少了很多功能(不推荐)

var mySwiper = new Swiper('.swiper-container', { cssMode: true });

  办法2:css启用硬件加速(但是只能解决白屏闪烁,卡顿依旧)

1 .swiper-slide{
2   -webkit-backface-visibility: hidden;
3   -webkit-transform: translate3d(0,0,0);
4 }
5
6 .swiper-wrapper{
7   -webkit-transform-style: preserve-3d;
8 }

  办法3  https://github.com/nolimits4web/swiper/issues/4493

 1 function easeOut(currentTime, startValue, changeValue, duration) {
2 currentTime /= duration;
3 return -changeValue * currentTime * (currentTime - 2) + startValue;
4 }
5
6 function getTransitionSimulator(ele, distance, duration, callback) {
7 let handle;
8 let resolve;
9 return () => {
10 let promise = new Promise(res => {
11 resolve = res;
12 });
13 let startTime = performance.now();
14 cancelAnimationFrame(handle);
15 function _animation() {
16 let current = performance.now();
17 // distance to move this frame
18 let disVal = easeOut(current - startTime, 0, distance, duration);
19
20 callback(ele, disVal);
21 if ((current - startTime) / duration < 1) {
22 handle = requestAnimationFrame(_animation);
23 } else {
24 cancelAnimationFrame(handle);
25 resolve();
26 }
27 }
28 handle = requestAnimationFrame(_animation);
29 return promise;
30 };
31 }
32
33 swiper.on('setTranslate', (swiper, targetTransVal) => {
34 const wrapper = swiper.$wrapperEl[0]; // wrapper element
35 // when use transition to do animation
36 if (wrapper.style.transitionDuration !== '0ms') {
37 // get origin translate value
38 const curTransVal = this.swiper.getTranslate();
39 // cancel the animation of transition
40 wrapper.style.transitionDuration = '';
41 wrapper.style.transform = `translate3d(${curTransVal}px, 0px, 0px)`;
42
43 // use requestFrameAnimation to do animation my self
44 const transSimulator = getTransitionSimulator(wrapper, targetTransVal - curTransVal, 300, (el, val) => {
45 el.style.transform = `translate3d(${curTransVal + val}px, 0px, 0px)`;
46 });
47 await transSimulator();
48 // End the transition, call the callback (simulate the internal implementation of Swiper)
49 swiper.onSlideToWrapperTransitionEnd.call(wrapper, { target: wrapper });
50
51 }
52 })

    有用,但是只适用于整页整页滑动,多列并不是适用。

  办法4:用Mac电脑下载个xcode链接Iphone做一个Demo App 内嵌下你的H5 页面。看是否正常,如果正常的话。那毫无提问,问题不前端,让IOS开发去排查问题。顺利解决

  最后:我这边是ios开发定位到了,确实是App的某个地方影响了全局的轮播,卡了好多天的问题,唉~~,如果你们也遇到过,把你们的解决办法说一下吧!!

IOS App内嵌H5 swiper 轮播出现卡顿白屏闪烁的更多相关文章

  1. ios应用内嵌h5页面数据自动变色识别为手机号码的解决方法——手机号码拨号禁用IOS手机页面数字自动识别为手机号

    异常如下: ios应用内嵌h5页面,本来是设置了白色的数字,两三秒之后会自动变为黑色,然后点击的时候就会弹出是否拨号的提示: 解决方法: 添加如下meta标签,即可解决: <meta name= ...

  2. app内嵌H5踩坑

    内嵌的H5是用的vue2版本开发的,期间有很多的坑要踩: 1.调用app返回上一个页面不触发页面的onmouted和window.onPageShow app返回上一个页面调用的方法并不会出发vue的 ...

  3. 移动端开发利器vConsole.js,app内嵌H5开发时调试用

    vConsole:一个轻量.可拓展.针对手机网页的前端开发者调试面板,主要还是用于内嵌app页面时在手机上进行调试,打印完全和在PC端一样,方便大家找出问题所在. 不说废话直接进入主题,vConsol ...

  4. ios下app内嵌h5页面是video适配问题

    ios下做新闻详情用h5页面实现然后打包到app中,其中新闻详情页会有视频,安卓下video的poster可以做到适应video大小,但是ios下会按照poster图片大小将video等比撑大,但是视 ...

  5. app内嵌h5页面在ios手机端滑动卡顿的解决方法

    1.带滚动条的dom需加样式 -webkit-overflow-scrolling: touch;2.去掉 width:100%; height:100%

  6. app内嵌H5网页(webviewJavaScriptBridge)

    摘要:使用的插件为webviewJavaScriptBridge,app端需要引入一下这个包,html页面只需一段JS代码 与IOS交互 <! 申明交互(此处代码固定) > functio ...

  7. app内嵌H5调用分享

    最近产品提出了一个需求:我们在合作方的app中提供的部分页面中增加分享页面,具体要求是在3个二维码推广页面调用app的分享接口,分享方式有3种,分别是点击”分享链接“按钮调起分享,点击”分享图片“按钮 ...

  8. app内嵌h5分享到小程序分享功能

    if (this.GLOBAL.env !== 'production') { try { window.JSBridge.shareMiniProgramToWx('https://www.lexi ...

  9. app内嵌H5的上传图片的功能

    1.上传组件 <!-- - hasBorder {Boolean} cell底部边框,oneline 为 true 有效 - inlineBorder {Boolean} cell底部短边框 - ...

  10. app内嵌 h5页面 再滑动的时候 触发击穿底下的一些touchstart事件

    我们的目的是再滑动的时候 不要触发到touchstart事件. // 再滑动的时候无法点开视频 var is_scroll_start,is_scroll_end; $(window).on({ 't ...

随机推荐

  1. 2021-12-22:回文子串。 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。

    2021-12-22:回文子串. 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目. 回文字符串 是正着读和倒过来读一样的字符串. 子字符串 是字符串中的由连续字符组成的一个序列. ...

  2. 2021-08-19:超级洗衣机。假设有 n 台超级洗衣机放在同一排上。开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的。在每一步操作中,你可以选择任意 m (1 ≤ m ≤ n) 台洗衣机,

    2021-08-19:超级洗衣机.假设有 n 台超级洗衣机放在同一排上.开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的.在每一步操作中,你可以选择任意 m (1 ≤ m ≤ n) 台洗衣机, ...

  3. IBM小型机 - AIX6.1系统安装教程

    AIX6.1系统安装教程 由于工作原因,公司让我帮忙部署AIX小型机的系统,在各处找了很多教程,也请教了大佬协助(感谢大佬的帮助),下面以图文的形式总结了AIX 6.1系统的安装过程. 准备工作 硬件 ...

  4. 【GiraKoo】线程本地存储(Thread Local Storage, TLS)

    [技术分享]线程本地存储(Thread Local Storage, TLS) 在项目开发中,遇到了关于TLS相关的问题.为了了解该机制的用途,在微软的官网查找了一些资料. 本文参考官方文档, 简单介 ...

  5. 简单记录一下从网上找到的python的渗透方面的第三方库

    python的hacker三方库 Scapy, Scapy3k:发送,嗅探和剖析并伪造网络数据包,可以做交互式应用或单纯的作为库来使用 pypcap, Pcapy and pylibpcap:几个不同 ...

  6. AcWing 278. 数字组合

    给定 N 个正整数 A1,A2,-,AN,从中选出若干个数,使它们的和为 M,求有多少种选择方案. 输入格式 第一行包含两个整数 N 和 M. 第二行包含 N 个整数,表示 A1,A2,-,AN. 输 ...

  7. 搭建自动化 Web 页面性能检测系统 —— 设计篇

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值.. 本文作者:琉易 liuxianyu.cn 页面性能对于用户体验.用 ...

  8. NOIP2021游记

    前言: 今年我是以初中生的身份参加的 NOIP,不计奖,不排名,就去试试水. 考得也不好,幸好没计奖. 正文: 早上 7 点: 到LNBS,在旁边吃了早饭,很好吃. 早上 8 点: 校门口照相,然后进 ...

  9. 自然语言处理 Paddle NLP - 词向量应用展示

    词向量(Word embedding),即把词语表示成实数向量."好"的词向量能体现词语直接的相近关系.词向量已经被证明可以提高NLP任务的性能,例如语法分析和情感分析. Padd ...

  10. 「AntV」L7地理可视化:从入门到实践

    1. 前言 这是一篇由浅入深的AntV L7的学习笔记总结,记述了从了解到使用的一些过程 本文所使用的数据(包括数据处理过程)和代码均有详细描述,所有案例均可复现,甚至大部分代码可直接使用 如果喜欢分 ...