如何隐藏滚动(溢出:隐藏)?

时间:2011-07-22 17:52:47

标签: javascript jquery html css scroll

我有可滚动页面,链接打开厚箱。

(参见示例landme.ru/scroll-bug/

我想在打开厚箱时隐藏垂直滚动并停留在页面底部。 将'overflow:hidden'属性应用于'body'标签不会 在ie7工作。如果我将此属性用于'html'标记,则页面内容为 在滚动隐藏之前向上滚动

抱歉我的英文

UPD:同时我使用这样的代码:

CSS:
    .noscroll{overflow:hidden;}

js:

if ( ($.browser.msie) && ($.browser.version == '7.0')) {  
   $('html').addClass('noscroll');  
} else {  
   $('body').addClass('noscroll');  
}  

它有效,但我还是想知道,如果还有其他方法

1 个答案:

答案 0 :(得分:0)

好的,所以问题在于高度。你不能只指定包装上隐藏的溢出,因为它不知道在哪里停止。使用position:relative的样式属性将div包装在div中;高度:100%;然后给出包裹溢出的风格:隐藏;身高:100%; position:absolute;

最后你需要滚动它,使它在底部。

document.getElementsByClassName("wrap")[0].scrollTop = document.getElementsByClassName("wrap")[0].scrollHeight

并且你有它:)

测试用例: http://jsbin.com/eguhuj#html

有一点滚动条,但这是因为jsbin。只是一个HTML文档,它看起来很完美。

编辑:更新的代码......我们可以测试一下,看看它是否先工作......你能把它放在你的锚元素中吗?

onclick="(function(){var blah = document.getElementsByClassName("wrap")[0];
document.getElementsByClassName("wr")[0].style.position = "absolute";
var meh = document.body.scrollTop;
blah.style.overflow = "hidden";
blah.style.height = "100%";
blah.style.position = "absolute";
blah.scrollTop = meh;})();"