我的网页的html看起来像这样:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>demo</title>
<style type="text/css">
div.page {
position: relative;
background-color: #F2F2F2;
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.5);
width: 794px;
height: 1123px;
margin-left: auto;
margin-right: auto;
margin-top: 30px;
margin-bottom: 30px;
overflow: hidden;
}
</style>
</head>
<body>
<div id="form">
<div id="page-1" class="page"></div>
<div id="page-2" class="page"></div>
</div>
</body>
</html>
模拟Word的分页风格,内容动态插入到每个page div中,如果page div中的内容溢出,我想把溢出的内容放到下一个page div中(或者如果下一个页面不存在的话创建一个新的)所以我想知道是否有一种方法可以让page div在内容溢出时触发一个事件,所以我可以反向循环内容元素来决定哪些元素应该放到下一页div中。
任何向正确方向的推动都将是巨大的帮助!谢谢。
5条答案
按热度按时间tnkciper1#
您可以获取嵌套DIV的clientHeight,该嵌套DIV是溢出DIV的子级。
测量内部div的clientHeight并将其与外部div的clientHeight进行比较。
lrpiutwd2#
是的。使用“溢出”事件。
你可能需要关闭overflow:hidden并将其设置为overlflow:auto(例如)才能触发它,但是一旦触发了它,你就可以将overflow设置回hidden并执行剩下的内容分割例程。
我相信在Chrome和Safari中也有类似的事件:“溢出已更改”
d5vmydt93#
我会使用一个额外的div,它位于屏幕之外,与页面div的内容完全相同(你应该保持更新)。唯一的区别是额外的div没有“overflow:hidden”。
现在,检查两个div之间是否存在高度差异,如果存在,则存在溢出的内容!
neskvpey4#
让我们弄清楚下面的定义。
视图-可查看区域或包含内容的框
content -溢出的内容。
要检测溢出,请检查view.
offsetHeight
和content.offsetHeight
之间的差异,溢出的内容就是这个减法值。soat7uwm5#
我有一个解决这个问题的方法。但是它只适用于内联CSS。