【问题标题】:Overflow hidden, but still able to scroll (only Chrome)溢出隐藏,但仍然可以滚动(仅限 Chrome)
【发布时间】:2012-10-12 12:20:58
【问题描述】:

我有一个非常奇怪的 CSS“错误”。

我目前正在研究一个滑块(幻灯片上有表单元素)。当我在幻灯片中的标签上单击并拖动(向右滚动以水平滚动)时,container 滚动并且下一张幻灯片可见,同时在容器上设置了属性 overflow: hidden;。

我发现在没有label标签存在的情况下溢出属性可以正常工作。

有人对此有解决方案吗?我尝试了很多 CSS 的东西,但没有成功。 我在这里重新创建了 JsFiddle 中的错误:clicky

更新

  • 单击和拖动错误仅出现在 Chrome 中。 (我测试过IE和FF)
  • 另外,这不是关于ul list 和labels 的滚动条,而是关于您可以点击右侧的label 和drag 的事实滚动到下一张幻灯片。

【问题讨论】:

标签: html css scroll overflow


【解决方案1】:

这是 Chromium 中的一个已知错误(Google chrome 基于此)请参阅:http://code.google.com/p/chromium/issues/detail?id=116655

因为 Safari 和 Chrome 似乎都显示了这个问题,所以我冒昧地猜测这个错误对于所有基于 webkit 的浏览器都是通用的。

很遗憾,Chromium 开发没有任何回应。我建议您在提供的链接上为这个问题投票,以帮助看到它在未来的修订版中得到解决。

【讨论】:

  • @Sven 好吧,这很奇怪,我再看看。
  • @sven 我发现了铬问题日志中报告的错误
  • 感谢您清除此问题!我赞成这个问题,我现在不能做更多。
【解决方案2】:

这是一个使用 jQuery 的解决方法。

$(your_slider).scroll(function(){
    if($(this).scrollTop() != 0 ){
        $(this).scrollTop(0)
    }
});

如果您是水平滚动,则将 scrollTop 替换为 scrollLeft

【讨论】:

    【解决方案3】:

    如果您将 HTML 元素的“溢出”更改为“隐藏”,它会阻止它滚动。 唯一的问题是“mousemove”事件。如果您在鼠标按下时禁用滚动(溢出=隐藏),它将正常工作。如果您在鼠标移动时执行此操作(例如用于拖动),它将无法正常工作。 因此,您应该将禁用滚动从“onmousemove”移至“onmousedown”。

    【讨论】:

      猜你喜欢
      • 2013-05-16
      • 2015-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-29
      • 1970-01-01
      • 2015-11-16
      相关资源
      最近更新 更多