通过单击一个按钮,我们使用jquery创建了一个动态div。
$("#add-div").on('click',function(){
$(".new-div").after('<div class="new-div" style="z-index:1; position:absolute;" >message</div>');
});
当前发生的情况是,在网页中已经有一个new-div,当单击add-div时会创建另一个new-div。问题在于所有新股均被重叠。一个div的消息被覆盖在另一个div的消息上。
如何解决呢?
我尝试过margin-righ:auto; margin-left:auto ;
在这里我无法更改位置:绝对position:absolute
。这是必须的。所以我正在寻找一个不改变立场的解决方案:绝对
更新:请参阅此jsfiddle:https ://jsfiddle.net/felixtm/pmcqj50j/1/
谢谢你 。
请尝试这个小提琴:https : //jsfiddle.net/qqx1w1ef/4/
$("#add-div").on('click',function(){
var last_element = $('body').find('.new-div:last');
var position_top = last_element.offset().top + last_element.outerHeight() + 10;
$(".new-div:last").after('<div class="new-div" style="z-index:1; position:absolute; top: '+position_top+'px;">message</div>');
});
我现在就做到了,它使用了最后一个元素,并将其位置top + height求和,然后再添加10个像素。
因此,您将获得绝对位置,并且始终在最后一个元素处添加新的追加。
修改过的jsFiddle:https ://jsfiddle.net/pmcqj50j/5/
要停止溢出,您可以使用以下css(也更新了小提琴):
.parent-div { max-width: 236px; width: 236px; position: relative; overflow: hidden; }
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句