是否有任何编程方法可以确定某条线是否已在浏览器中显示?此行下方的内容绝对定位(出于源排序的目的),如果换行,我需要更改其位置。
答案 0 :(得分:1)
您可以通过检查元素的高度并将其与具有相同内容但更宽的类似元素进行比较来确定元素是否已被包装。
这是你可以做到的:
width
。例如:
function checkWrapping() {
// for each paragraph in the div, check if it was wrapped
$("#mydiv").find("p").each(function () {
// create a hidden paragraph with the same text and append it to the parent
var aux = $("<p style='display:none;position:absolute;width:10000000px'>" + $(this).text() + "</p>");
$(this).parent().append(aux);
// compare the height of the paragrap with the height of the one-line paragraph
if ($(this).height() > $(aux).height()) {
console.log($(this).attr("id") + " is wrapped!");
} else {
console.log($(this).attr("id") + " is NOT wrapped!");
}
// remove the hidden paragraph at the end of the check
$(aux).remove();
});
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="mydiv">
<p id="p0">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque tristique rutrum velit, sit amet vestibulum dui consectetur at. Suspendisse scelerisque pellentesque lectus in lacinia.</p>
<p id="p1">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p id="p2">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque tristique rutrum velit, sit amet vestibulum dui consectetur at.</p>
</div>
<input type="button" value="check if wrapped" onclick="checkWrapping();">
&#13;
您也可以在此jsfiddle上看到示例:http://jsfiddle.net/o1ay0e71/(它可以让您轻松调整窗口大小以比较结果)。
此外,如果该行包含html代码,请使用.html()
代替.text()
,如此更新所示:http://jsfiddle.net/o1ay0e71/1/