Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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
Google chrome Google Chrome中的溢出隐藏和输入文本滚动_Google Chrome_Input_Overflow_Drag_Hidden - Fatal编程技术网

Google chrome Google Chrome中的溢出隐藏和输入文本滚动

Google chrome Google Chrome中的溢出隐藏和输入文本滚动,google-chrome,input,overflow,drag,hidden,Google Chrome,Input,Overflow,Drag,Hidden,以下是我的代码片段: 如果我在输入文本字段上单击并拖动,我会得到带有overflow:hidden滚动的div,就像它使用overflow:auto一样。如果我在div上设置overflow:hidden,我希望像其他浏览器一样锁定滚动 奇怪的是,如果我在输入字段上设置padding:0px,Chrome上的问题就不会再出现了 这是谷歌浏览器的错误吗?有没有解决方法可以让它在不使用Javascript的情况下工作 编辑:这种行为也发生在Safari 5上。可能是网络工具包的问题。我也遇到了这个

以下是我的代码片段:

如果我在输入文本字段上单击并拖动,我会得到带有overflow:hidden滚动的div,就像它使用overflow:auto一样。如果我在div上设置overflow:hidden,我希望像其他浏览器一样锁定滚动

奇怪的是,如果我在输入字段上设置padding:0px,Chrome上的问题就不会再出现了

这是谷歌浏览器的错误吗?有没有解决方法可以让它在不使用Javascript的情况下工作


编辑:这种行为也发生在Safari 5上。可能是网络工具包的问题。

我也遇到了这个问题。到目前为止,我最擅长的就是使用
指针事件:none。我能应用它的唯一方法是设置
显示:无。否则它被忽略了,所以有一个短暂的眨眼


我使用JQuery尝试了tiffon的解决方案,但无法让它处理多个字段,在我将指针事件设置为“无”后,mouseup不会启动

因此,将输入“指针事件”设置为“无”可以解决滚动到隐藏内容的问题,但它会阻止用户使用鼠标事件聚焦字段。 但我注意到,点击标签仍然可以聚焦字段

所以我做了这个变通方法,因为我所有的字段都嵌套在div中。基本上,单击字段不会将其聚焦,但仍会将事件气泡化到其父级:

    $('label').click(function(e){
    e.stopPropagation();
});
$('input[type="text"], textarea').parent().click(function(){
    $(this).find('label').click();
});
$('input[type="text"], textarea').on({
    mousedown:function(){
        $(this).css('pointer-events', 'none');                  
    }
});

问题是,除非您使用键盘箭头键,否则它不允许您选择字段内的文本。

在“onscroll”事件中将scrollLeft和/或scrollTop设置为0,这将禁用滚动:

var div = $(".overflow-hidden");
div.scroll(function() { div.scrollTop(0).scrollLeft(0); });

以下是为我修复它的方法:

input:active { pointer-events:none; }
感谢您在这个类似的问题上指出这一点:

2013-11更新:
指针事件:无
修复了该问题,但有许多缺点。解决此问题的最佳方法实际上是确保没有溢出的内容,如“溢出:隐藏的<代码>容器的内容不大于所述容器。如果您希望通过JavaScript滚动内容,请将其宽度和高度设置为0,只要它是隐藏的,并仅在移入之前调整其大小(通过关键帧动画或定时转换轻松完成)

重要提示:我在Chrome中遇到了一个奇怪的情况,在我通过CSS调整大小时,Chrome中的自定义
字段不应该导致任何溢出问题-开发工具确认了这一点,但是:在查看了阴影DOM之后,我意识到Chrome自己的“按钮”“溢出了实际输入字段,因此导致整个容器变大


如何显示阴影DOM:如果情况看起来不错,但仍然是一个问题,请转到Chrome开发工具,单击右下角的设置按钮。在“元素”部分的“常规”选项卡上,是启用“显示阴影DOM”的选项。这将使您了解整个情况…虽然大多数时候它只是增加了另一层复杂性,但在这里它确实很有帮助!

同样的问题,只是解决方法对我不起作用。:-(非常感谢。这正是我需要的;-)不幸的是,使用此解决方案,用户无法再通过鼠标突出显示来向下滚动。此外,在JS中侦听事件时,它还有其他含义。请参阅我的答案,以获得更健壮的解决方案。它有缺点-我告诉你!尽管你的示例有点离题,因为它没有包含
放置
field@JohnKurlak我用我的最新结论更新了我的帖子;-)@JörnBerkefeld非常抱歉!我以为我是在发布另一个帖子。我的错误。
input:active { pointer-events:none; }