在jQuery中,如何设置元素的“顶部,左侧”属性相对于父级而不是文档的位置值?
.offset([coordinates])
方法设置元素的坐标,但仅相对于文档。 那我怎么能设置一个元素的坐标,但相对于父项?
我发现.position()
方法只获取相对于父对象的“顶”,“左”值,但是它没有设置任何值。
我试着用
$("#mydiv").css({top: 200, left: 200});
但不起作用。
要设置相对于父级的位置,您需要设置position:relative
父级和position:absolute
position:relative
position:absolute
元素的position:absolute
$("#mydiv").parent().css({position: 'relative'}); $("#mydiv").css({top: 200, left: 200, position:'absolute'});
这工作,因为position: absolute;
相对于最接近定位的父母(即,具有除默认static
以外的任何位置属性的最近父母)定位。
$("#mydiv").css('top', 200); $("#mydiv").css('left', 200);
你可以试试jQuery UI的.position方法。
$("#mydiv").position({ of: $('#mydiv').parent(), my: 'left+200 top+200', at: 'left top' });
检查工作演示。
dynamic页面的代码偏移dynamic
var pos=$('#send').offset().top; $('#loading').offset({ top : pos-220});
我发现,如果传递的值是一个stringtypes,它必须后跟“px”(即90px),如果该值是一个整数,它将自动附加px。 宽度和高度属性更宽容(任何types的作品)。
var x = "90"; var y = "120" $(selector).css( { left: x, top: y } ) //doesn't work $(selector).css( { left: x + "px", top: y + "px" } ) //does work x = 90; y = 120; $(selector).css( { left: x, top: y } ) //does work