• jquery-mobile的页面跳转和iscroll之间的兼容解决方法


    有一项目需要用到滚动效果,最后选择了iscroll插件,代码写好后chrome测试一切正常(直接查看用到滚动效果的页面以下统称当前页面),运行APP应用一步步跳转到当前页面的时候,滚动效果和滚动条等死活出不来,然后各种调试,各种删减JS,各种调整代码,依然不行,真是恶心的要死。最后经过测试发现,如果当前页面做为应用的第一个页面展示出来的时候滚动效果就会OK。而通过JQM的页面跳转也就是jQuery.mobile.changePage()到达当前页面的时候,iscroll效果就不起作用了。由此可以想象到,在当前页面还未初始化即还未展现的时候,滚动区域DOM应该是由于某种原因并不适用于iscroll的初始化条件(可能是高度和实际高度不匹配等等原因吧,具体不太清楚)。

    解决办法一:
    可以在滚动区域内容发生变化之后来初始化iscroll滚动对象,所以我们可以在changePage()到当前页面之后来创建这个对象

    $(".selector").on("pagecreate",function(){  
        function loaded() {
            myScroll = new iScroll('wrapper',{snap:false,checkDOMChange:true,vScrollbar:true});
        }
        setTimeout(loaded, 20);
    })

    解决方法二:
    如果之前已经初始化过iscroll对象,我们可以用iscroll的refresh方法来刷新次对象

    $(".selector").on("pagecreate",function(){  
        setTimeout(function(){      
            myScroll.refresh();
        }, 100);
    })
  • 相关阅读:
    成为优秀程序员的101条建议(3)
    shell字符串的用法
    Centos yum国内源及配置含义
    go自动补全
    shell中空格的使用;空格替换;通配符
    shell自动补全功能:bash和zsh;zsh启动优化
    Mac下的命令行自动补全功能
    mac环境下intellij的自定义配置文件位置
    vim中delete(backspace)键不能向左删除
    一个性能较好的JVM参数配置
  • 原文地址:https://www.cnblogs.com/wshiqtb/p/3510933.html
Copyright © 2020-2023  润新知