我已经实现了一些在鼠标悬停时向上和向下滚动的div。但是,如果没有滚动,我想让这些div消失。我试图通过比较容器的scrollHeight和容器的实际高度来做到这一点。如果匹配,我希望悬停滚动div的'visibility'属性为'hidden'。
这是我的代码。我错过了什么?
$(function () {
if ($('#container').scrollHeight() == $('#container').height()) {
$('.HoverScrollUp,#HoverScrollDown').css('visibility': 'hidden');
}
})
(是的,.HoverScrollUp应该是一个类,而不是一个ID。)
提前感谢您的帮助。
答案 0 :(得分:1)
scrollHeight是DHTML对象模型的属性,它是第一个 由MSIE介绍。它被称为元素的高度 物理滚动视图。 MDN
由于它是属性而非方法,因此调用.scrollHeight()
并不起作用。根据qwertymk的例子,您必须像属性一样访问它。请注意,它不能在IE7中工作。我建议不要完全使用它。
.css('visibility': 'hidden');
还存在语法问题:
应为,
尝试以下代替scrollHeight
:
if ($('#HoverScrollDown').outerHeight() < $('#container').innerHeight()) {
$('.HoverScrollUp,#HoverScrollDown').css('visibility', 'hidden');
}else if ($('#HoverScrollDown').outerWidth() < $('#container').innerWidth()) {
$('.HoverScrollUp,#HoverScrollDown').css('visibility', 'hidden');
}
答案 1 :(得分:0)
尝试使用if语句:
if ($('#container')[0].scrollHeight === $('#container').height())
虽然你应该缓存查询:
$(function () {
var $container = $('#container');
if ($container[0].scrollHeight === $container.height()) {
$('.HoverScrollUp,#HoverScrollDown').css('visibility': 'hidden');
}
});
不要问我为什么会这样,在我看到这个问题之前我遇到了同样的问题,也许这是jQuery中的一个错误?