简体   繁体   English

当输入集中在使用 colorbox 弹出窗口的移动设备上时,如何禁用/防止自动滚动?

[英]How to disable/prevent auto scrolling when input is focused on mobile devices using colorbox popup?

I have a responsive website which opens a contact form popup using colorbox.我有一个响应式网站,它使用 colorbox 打开一个联系表单弹出窗口。 Everyhting is fine on desktop browsers, issues on mobile devices are:在桌面浏览器上一切正常,在移动设备上的问题是:

  1. When I swipe/scroll down a little bit the popup the popup scrolls back to the top.当我向下滑动/向下滚动弹出窗口时,弹出窗口会滚动回顶部。 When I swipe/scroll a larger amount, no scrolling back happens.当我滑动/滚动更大的量时,不会向后滚动。
  2. (more important) When I focus/touch one of the input fields for the first time, the keyboard appears and the popup scrolls to the top of the popup, so the input field is out of sight. (更重要的是)当我第一次关注/触摸其中一个输入字段时,键盘出现并且弹出窗口滚动到弹出窗口的顶部,因此输入字段不在视线范围内。 When I focus/touch any other input field after that, no scrolling happens.之后当我聚焦/触摸任何其他输入字段时,不会发生滚动。

This is the (simplified) code produced by colorbox:这是 colorbox 生成的(简化的)代码:

    <div id="cboxOverlay" style="opacity: 0.9; cursor: pointer; visibility: visible;"></div>
<div id="colorbox" class="" role="dialog" tabindex="-1" style="display: block; visibility: visible; top: 0px; left: 0px; position: absolute; width: 555px; height: 2453px;">
    <div id="cboxWrapper" style="height: 2453px; width: 555px;">
        <div style="clear: left;">
        <div id="cboxContent" style="float: left; width: 1427px; height: 1818px;">
            <div id="cboxLoadedContent" style="width: 1427px; overflow: auto; height: 1818.08px;">
                <div class="quickform">
                    <form name="form_1071" id="form_1071" method="post" action="https://domain.tld/formu.php" autocomplete="on">
                        <input type="hidden" name="header" value="Contact">
                        <input type="hidden" name="timestamp" value="1667904741" data-label="Timestamp">
                        <input type="hidden" name="contactid" value="">
                        <input type="hidden" name="quickform" value="1071">
                        <input type="hidden" name="index" value="0">
                        <label for="vorname">Name*:
                            <input required="" class=" inputfield" type="text" id="vorname" name="qf_r_name" value="">
                        </label>
                        <label for="email">eMail*:
                            <input required="" class=" inputfield" type="text" id="email" name="qf_r_email" value="">
                        </label>
                        <label for="message">Message*:
                            <textarea required="" class="  inputfield" cols="80" rows="6" id="message" name="qf_r_message"></textarea>
                        </label>
                        <button name="Submit" type="submit">SEND</button>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

Please let me know if I should provide any other code for I have no idea where to start...请让我知道是否应该提供任何其他代码,因为我不知道从哪里开始......

Just found out myself after hours of reserach and testing: In jquery.colorbox-min.js change经过数小时的研究和测试后才发现自己:在 jquery.colorbox-min.js 中更改

reposition:!0 to reposition:!1

to prevent Repositioning of Colorbox if the window's resize event is fired.以防止在触发窗口的调整大小事件时重新定位 Colorbox。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM