javascript - scrollTop 和 scrollLeft 在显示 :none elements 上不起作用

标签 javascript jquery html css jquery-ui

我试图在显示之前滚动一个隐藏的元素。这是我正在使用的代码:

<div class="main">
    <div class="bg">
    </div>
</div>

.main { 
    display:none; 
    position:abolsute; 
    width:250px;height:250px; 
    overflow:scroll;
}
.bg { 
    background: blue url(http://defaulttester.com/img/bg-landing-mario.jpg); 
    width:1200px; 
    height:800px; 
}

$(".main").scrollTop($(".bg").height()/2);
$(".main").scrollLeft($(".bg").width()/2);

如果它显示,它工作正常,但如果它的 display:hidden 它将简单地不起作用。有什么办法可以避免这种情况并让它发挥作用吗?

JSFiddle:http://jsfiddle.net/dpjzJ/

最佳答案

使用 visibility: hidden; 或类似这样的一些类:

.hide {
   position: absolute !important;
   top: -9999px !important;
   left: -9999px !important;
}

或者这个(来自样板):

.visuallyhidden { 
  position: absolute; 
  overflow: hidden; 
  clip: rect(0 0 0 0); 
  height: 1px; width: 1px; 
  margin: -1px; padding: 0; border: 0; 
}

您可能知道,带有 display: none; 的内容在页面上没有位置。

Check out this article on the subject.

关于javascript - scrollTop 和 scrollLeft 在显示 :none elements 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17047855/

相关文章:

javascript - 通过HTML代码控制python代码

javascript - href=javascript : jquery not working in FF

javascript - 使用 jQuery 从 JS 数组动态创建 HTML 表

javascript - 如何同时处理多个事件?

jquery - 除非在手机上,否则如何始终保持按钮在桌面上水平对齐

javascript - 如何将动画放在输入类型范围的拇指上:悬停时?

html - 解决在小屏幕上重叠的视差滚动功能

Android - 在 html 代码中播放 html5 <video>

javascript - 如何通过 BootstrapVue 仅使用 API 中所需的字段?

javascript - 为什么在 javascript 生成器中生成变异对象在转换为数组时会导致不同的行为?