zoukankan      html  css  js  c++  java
  • 修复IScroll点击无效,增加scrollTo数值容错处理

    个人博客:

    https://chenjiahao.xyz

    ==============

    最近半年都处于一个非常忙碌的状态,直到现在才有功夫腾出时间记录这段时间以来踩过的一个个坑。

    今天先记录关于IScroll 5.1.3版本的坑吧,以及自己打的一个小补丁

    =============================

    调用IScroll的时候,在IScorll区域有需要点击时部分安卓机点击无效。若设置click为true,则IOS需双击才能触发。 

    解决方案:针对不同机型进行iscroll配置参数click的修改。

     1 function IScroll (el, options) {
     2 // INSERT POINT: DEFAULTS
     3     // fix click in bad Andriod
     4     this.options.click = this.fixIScrollClickInAndriod();
     5 }
     6 IScroll.prototype = {
     7     version: '5.1.3',
     8     fixIScrollClickInAndriod: function (){
     9         if (/iPhone|iPad|iPod|Macintosh/i.test(navigator.userAgent)) return false;
    10         if (/Chrome/i.test(navigator.userAgent)) return (/Android/i.test(navigator.userAgent));
    11         if (/Silk/i.test(navigator.userAgent)) return false;
    12         if (/Android/i.test(navigator.userAgent)) {
    13             var s = navigator.userAgent.substr(navigator.userAgent.indexOf('Android')+8,5);
    14             //return parseFloat(s[0]+s[3]) < 44 ? false : true}
    15             return parseFloat(s[0]+s[2]+s[4]) <= 442 && parseFloat(s[0]+s[2]+s[4]) > 430 ? true : false}
    16     }
    17 }

      

      在返回页面的时候需要定位,所以把第一次进入的位置存入sessionStorage了,取出来时调用scrollTo(0,pos)无效。 

      出现原因:IScroll对于数值设置为Number,当存入sessionStorage会转为字符串,若取出来不进行parseFloat处理,将返NaN导致无法定位 
      解决方案:1、对从sessionStorage中取出来的数值,进行parseFloat处理。2、修改IScroll关于scrollTo位置的源码,增加 || 0 操作

    1 var myScroll = new Scroll("#wrapper");
    2 window.sessionStorage.setItem("pos",myScroll.y);
    3 myScroll.scrollTo(parseFloat(window.sessionStorage.getItem("pos"))); // 也可修改scrollTo方法做 || 0 转换为数值处理

     

  • 相关阅读:
    第4次作业(条件)比较大小。第3次作业(条件)计算火车运行时间。
    GitHub搜索技巧
    flex实现左中固定不变,右边自适应
    JavaScript高级__原型继承+组合继承
    JavaScript高级__深入了解闭包
    JavaScript高级__执行上下文代码案例
    JavaScript中的显式原型链 prototype 和隐式原型 __proto__
    谷歌强大插件收集,持续更新。。。
    js中~~和^=
    vue自定义指令----directive
  • 原文地址:https://www.cnblogs.com/McChen/p/5241526.html
Copyright © 2011-2022 走看看