Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone浏览器滚动更快-webkit溢出滚动:触摸位置:修复不工作-Javascript替代方案?_Javascript_Jquery_Html_Css_Iphone - Fatal编程技术网

iPhone浏览器滚动更快-webkit溢出滚动:触摸位置:修复不工作-Javascript替代方案?

iPhone浏览器滚动更快-webkit溢出滚动:触摸位置:修复不工作-Javascript替代方案?,javascript,jquery,html,css,iphone,Javascript,Jquery,Html,Css,Iphone,我花了整整一天的时间和昨天的一点时间试图在iPhone上更快地滚动,默认情况下,iPhone的滚动速度非常慢 我试图补充: overflow-y: scroll; -webkit-overflow-scrolling: touch; 该元素确实可以实现更快/理想的滚动,但它会使位于固定位置的元素(如顶部和底部菜单)消失 网上有很多关于如何处理这个问题的建议,但都失败了 其中包括设置,它确实显示了以下元素: transform: translate3d(0, 0, 0); 但是,它基本上将po

我花了整整一天的时间和昨天的一点时间试图在iPhone上更快地滚动,默认情况下,iPhone的滚动速度非常慢

我试图补充:

overflow-y: scroll;
-webkit-overflow-scrolling: touch;
该元素确实可以实现更快/理想的滚动,但它会使位于固定位置的元素(如顶部和底部菜单)消失

网上有很多关于如何处理这个问题的建议,但都失败了

其中包括设置,它确实显示了以下元素:

transform: translate3d(0, 0, 0);
但是,它基本上将position:fixed转换为position:absolute或static,这并不是期望的效果

我开始认为解决这个问题的唯一方法是通过Javascript,但要让它正常工作并不容易

我写过这篇文章,但它不是100%有效。也许你能帮我弄明白?还有一点要走。速度将需要动画,但如果我能让这第一件工作,然后可以处理

在底部查找bindScroll调用:

(function() {

    // left: 37, up: 38, right: 39, down: 40,
    // spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36
    var keys = {37: 1, 38: 1, 39: 1, 40: 1};

    function preventDefault(e) {
        e = e || window.event;
        if (e.preventDefault)
            e.preventDefault();
        e.returnValue = false;
    }

    function preventDefaultForScrollKeys(e) {
        if (keys[e.keyCode]) {
            preventDefault(e);
            return false;
        }
    }

    function disableScroll() {
        if (window.addEventListener) // older FF
            window.addEventListener('DOMMouseScroll', preventDefault, false);
        window.onwheel      = preventDefault; // modern standard
        window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE
        window.ontouchmove  = preventDefault; // mobile
        document.onkeydown  = preventDefaultForScrollKeys;
    }

    function enableScroll() {
        if (window.removeEventListener)
            window.removeEventListener('DOMMouseScroll', preventDefault, false);
        window.onmousewheel = document.onmousewheel = null;
        window.onwheel      = null;
        window.ontouchmove  = null;
        document.onkeydown  = null;
    }

    function bindScroll(element, speed) {

        var disabled  = false;
        var last      = 0;
        var to        = 0;

        element.addEventListener('scroll', function(event) {

            if ( !disabled ) {
                disabled = true; disableScroll();

                var direction = 1;
                if ( element.scrollTop < last ) {
                    direction = -1;
                }

                last = (element.scrollTop += speed*direction);

                setTimeout(function() {
                    if ( element.scrollTop >= last ) {
                        disabled = false; enableScroll();
                    }
                }, 1);

            }

            return false;
        });

    }

    bindScroll($('.p').get(0), 100);

})();
(函数(){
//左:37,上:38,右:39,下:40,
//空格键:32,向上翻页:33,向下翻页:34,结束:35,起始:36
var键={37:1,38:1,39:1,40:1};
功能默认值(e){
e=e | | window.event;
如果(如默认)
e、 预防默认值();
e、 returnValue=false;
}
CROLLKEYS(e)的默认功能{
if(键[e.keyCode]){
防止违约(e);
返回false;
}
}
函数disableScroll(){
if(window.addEventListener)//FF
addEventListener('DOMMouseScroll',preventDefault,false);
window.onwheel=preventDefault;//现代标准
window.onmouseheel=document.onmouseheel=preventDefault;//旧浏览器,即
window.ontouchmove=preventDefault;//移动
document.onkeydown=preventDefaultForScrollKeys;
}
函数enableScroll(){
if(window.removeEventListener)
removeEventListener('DOMMouseScroll',preventDefault,false);
window.onmouseheel=document.onmouseheel=null;
window.onwheel=null;
window.ontouchmove=null;
document.onkeydown=null;
}
功能(元素、速度){
var disabled=false;
var last=0;
var-to=0;
元素。addEventListener('scroll',函数(事件){
如果(!已禁用){
disabled=true;disableScroll();
var方向=1;
if(element.scrollTop=最后一个){
disabled=false;enableScroll();
}
}, 1);
}
返回false;
});
}
bindScroll($('.p').get(0),100);
})();
是否有其他解决方案不会破坏这些内容?