【问题标题】:I can't scroll the window on android, ios我无法在 android、ios 上滚动窗口
【发布时间】:2014-03-07 21:09:02
【问题描述】:

我正在使用 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>

【问题讨论】:

  • 你们有什么想法吗?我使用 Iscroll 5

标签: jquery scroll iscroll


【解决方案1】:

请提供一个 jsfiddle。

提示:通过添加这行代码$('a, input, #sendmsg, .ml_tabs').on('touchstart', function(e) { e.stopPropagation(); });

您将阻止任何事情发生,尤其是当您尝试在 &lt;a&gt;Tag 或 &lt;input&gt; 等上启动 touchmove 事件时。

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

初始化iScroll时使用preventDefault: false //do not prevent a possible click - we'll take care of it

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

【讨论】:

    猜你喜欢
    • 2018-09-05
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 2015-11-22
    • 2018-06-23
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多