我无法滚动android上的窗口,ios

时间:2014-03-07 21:09:03

标签: jquery scroll iscroll

我正在使用iScroll进行移动聊天,ios或android版本。

但是我无法滚动窗口,确实它就像被阻挡了一样,我对屏幕无能为力。

我尝试使用我的iphone,但我无法做任何事情,我阅读了一些关于此的文档,但我还不知道我必须做出哪些修改。

请参阅下面的代码,谢谢您的任何想法。

            <script type="text/javascript">
var myScroll;
var showkey =true;
function loaded () {
    myScroll = new IScroll('#contenu', { 
    tap:true,
    desktopCompatibility: true,
    onBeforeScrollStart: function (e) {
                var nodeType = e.explicitOriginalTarget ? e.explicitOriginalTarget.nodeName.toLowerCase():(e.target ? e.target.nodeName.toLowerCase():'');

                if(nodeType !='select' && nodeType !='option' && nodeType !='input' && nodeType!='textarea' && !showkey) {
                     e.preventDefault();    //prevents showing keyboard - scrolling
                }//otherwise, show keyboard, do default
                if(!showkey) showkey = true;
            },       
    });
    $('a, input, #sendmsg, .ml_tabs').on('touchstart', function(e) {
        e.stopPropagation();
    });
}
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', function () { setTimeout(iScrollLoad, 200); }, false);
</script>

1 个答案:

答案 0 :(得分:0)

请提供一个jsfiddle。

仅供注意:添加此行代码$('a, input, #sendmsg, .ml_tabs').on('touchstart', function(e) { e.stopPropagation(); });

如果您尝试在<a>代码或<input>上开始触摸移动事件,那么您将阻止任何事情发生。

你应该知道的是,iScroll不喜欢CSS中的overflow属性。将overflow: hidden !important;设置为容器是一件好事,你想滚动。

当initializnig iScroll使用preventDefault: false //do not prevent a possible click - we'll take care of it

myScroll = new IScroll('#wrapper', { preventDefault: false });