弄清楚是否溢出:auto会在div上触发

时间:2010-05-25 18:44:12

标签: javascript css

//主要编辑,抱歉在床上背部疼痛,搞砸了帖子

我编写代码的其中一个广告代理商让我设置了一个替代滚动解决方案,因为您知道设计师如何讨厌那些有效但不美观的东西。

滚动解决方案应用于overflow:hidden的div并使用jQuery的scrollTo()。它是一组顶部和底部按钮,用于处理移动内容。

所以,这是在他们的CMS结婚的地方。我还无法排序的是,当CMS内容不会触发overflow:auto并且不需要按钮时,如何隐藏滚动UI。

div设定了高度和宽度。我可以检测隐藏的内容吗?或者测量div内容的高度?

有什么想法吗?

5 个答案:

答案 0 :(得分:3)

所以你想获得一个隐藏元素的高度?我发现这个post也许正是你要找的。

它使用jQuery,但概念是一样的。希望这有帮助!

大都市

答案 1 :(得分:1)

你能更好地解释一下吗?你想隐藏div设置的滚动条溢出:auto没有足够的文本溢出?浏览器为您完成此任务。

你想隐藏div设置的滚动条,当它向下滚动到某个点时会自动溢出,但你不是在看它或是悬停还是什么?那会很复杂。

如果你想知道某个div是否有溢出设置,你只需:

object.style.overflow

它会给你一个字符串。

可能的值:

visible
hidden
scroll
auto
inherit

你可以用同样的方式设置溢出

http://www.w3schools.com/css/pr_pos_overflow.asp

从我现在的理解是你有这些div与隐藏的滚动,但一些图形设计师自定义滚动条,你使用scrollTo进行实际滚动。但是,当你没有足够的数据来实现需要滚动条时你就会出现问题,但无论如何你的图形内容都会出现,所以你想隐藏它。

所以真正的问题是你如何获得内容的高度?你想要属性offsetHeight,但我很确定它只是IE浏览器。

答案 2 :(得分:1)

我希望我弄错了,但您需要通过使用某些js设置属性来模拟溢出,然后您可以使用getAttribute或您自己的方法获取这些值。否则当你将overflow设置为auto时,那么浏览器将自己做一件事,而作为溢出属性返回的唯一值就是'auto'这样的字符串。

答案 3 :(得分:1)

CMS是什么意思?

是的,您可以访问div的内容高度,因为您可以使用JavaScript访问所有div的子节点。 (对不起,不包括例子。我现在暂时没有使用纯JS,所以我不想指出错误的方向。) 这样做,你就能够“检测隐藏的内容”,然后能够做你真正想做的事情。

关于您的第一个问题,我怀疑您将溢出设置为自动后可以控制滚动条。

答案 4 :(得分:0)

在包含内容的div上使用jQuery height()我可以根据高度是否超过具有overflow:hidden的div的CSS高度来显示/隐藏用户界面。