[英]Set parent as overflow hidden to cut off animation but keep showing child element
[英]Remove child element if being “cut” by parent element with overflow hidden
我正在制作一个页面, 左侧应该有内容,右侧 是divs中的广告 。 左侧div的高度未知。 我想在右侧添加尽可能多的商业div,而不会使右侧的高度高于左侧的高度。
我将右侧div的高度设置为等于左侧的高度,然后添加了overflow: hidden
在右侧div中,以便切断商业div。 我不想裁掉我的商业div,所以我想删除被裁掉的那个。
这样的事情应该可以做。
$(document).ready(function() { $(".right_side").css("height", $(".left_side").height()); var j = $(".right_side").children("div").length; for (var i = 1; i < j; i++) { if ((($('.right_side').offset().top + $(".right_side").height()) - ($('.right_side div:last-child').offset().top + $(".right_side div:last-child").height())) < 0) { $(".right_side div:last-child").remove(); } else { break; } } });
div.left_side { display: inline-block; } div.right_side { display: inline-block; float: right; overflow: hidden; } div.left_side_content { height: 30px; margin-top: 10px; background-color: green; } div.commercials { height: 50px; margin-top: 10px; background-color: forestgreen; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="content" style ="width: 430px; background-color: lightblue; padding: 5px;"> <div class="left_side" style ="width: 200px; background-color: tomato; padding: 5px;"> <div class="left_side_content">content</div> <div class="left_side_content">content</div> </div> <div class="right_side" style ="width: 200px; background-color: orange; padding: 5px;"> <div class="commercials">commercials</div> <div class="commercials">commercials</div> <div class="commercials">commercials</div> <div class="commercials">commercials</div> <div class="commercials">commercials</div> <div class="commercials">commercials</div> </div> </div>
您可以尝试以下代码,这将删除所有已截止的广告DIV:
$(document).ready(function() {
$(".right_side").css("height", $(".left_side").height());
$commercialDivs = $(".right_side").children("div.commercials");
$rightSideDivHeight = $(".right_side").height();
$tempHeight = 0;
for(var i=0;i<$commercialDivs.length;i++){
$tempHeight += $commercialDivs[i].clientHeight;
if($tempHeight>$rightSideDivHeight){
$commercialDivs[i].remove();
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.