的底部,我想在如何确定是否隐藏/溢出文本是在顶部或元素
How to determine from javascript if an html element has overflowing content
上Shog9的回答扩张,我想知道这是否是隐藏的文本位于包含元素的顶部或底部(或者两者都没有)。
什么是最好的方式去呢?
的底部,我想在如何确定是否隐藏/溢出文本是在顶部或元素
How to determine from javascript if an html element has overflowing content
上Shog9的回答扩张,我想知道这是否是隐藏的文本位于包含元素的顶部或底部(或者两者都没有)。
什么是最好的方式去呢?
我无法看透树木,不见森林。 Joel的代码片段var isScrolledDown = el.scrollTop > 0;
让我意识到如何去做。我使用了两个函数:
function HasTopOverflow(el) {
return el.scrollTop;
}
function HasBottomOverflow(el) {
var scrollTop = el.scrollTop,
clientHeight = el.clientHeight,
scrollHeight = Math.max(el.scrollHeight, clientHeight);
return (scrollTop + clientHeight) < scrollHeight;
}
还没有测试过它是否可以在IE6 +上工作,但FF工作。
如果有任何错误,请让我知道。
您可以结合scrollLeft
和scrollTop
与Shog的回答。
具体做法是:
// Author: Shog9
// Determines if the passed element is overflowing its bounds,
// either vertically or horizontally.
// Will temporarily modify the "overflow" style to detect this
// if necessary.
// Modified to check if the user has scrolled right or down.
function checkOverflow(el)
{
var curOverflow = el.style.overflow;
if (!curOverflow || curOverflow === "visible")
el.style.overflow = "hidden";
var isOverflowing = el.clientWidth < el.scrollWidth
|| el.clientHeight < el.scrollHeight;
// check scroll location
var isScrolledRight = el.scrollLeft > 0;
var isScrolledDown = el.scrollTop > 0;
el.style.overflow = curOverflow;
return isOverflowing;
}
您是否有内容超过父级顶部的溢出元素示例?我能想到的唯一场景是一个溢出的元素:auto用户滚动内容的地方... – Shog9 2010-01-07 22:00:34
是的,overflow:auto是我正在使用的。所以当滚动时,内容可以隐藏在上面和下面,两者都可以或不包含包含的元素。请参阅下面的答案。 – slolife 2010-01-07 22:24:57
@ Shog9,我有一个场景,我们滚动的内容,但我们不想使用滚动条,而是正常(和漂亮的)箭头。 – trysis 2015-05-04 20:43:57