Если вы добавите <div>
элементы "position: absolute", то вы не получите полос прокрутки.
Утилита jQuery UI ".position ()" выдаст затронутые элементы (добавленные вами).<div>
элементы) "position: относительный", если они не установлены с помощью "position".Элементы, расположенные таким образом, занимают место на странице, как если бы они были , а не удалены от своего "естественного" положения.Таким образом, страница переполняется, когда вы добавляете все эти элементы, даже если они перемещены так, что они все подходят.
Предоставляя им «position: absolute», вы выводите их из обычного потока макета.Chrome не согласен с этим по причинам, которые я не понимаю;Я думаю, что Firefox на самом деле делает все правильно.( edit - если вы добавите строку, добавляющую одну последнюю <div>
к «target», и сделаете ее просто «jane <div>
» с небольшим текстом в ней, но без позиционирования вообще, тогдавы увидите, что в Chrome он оказывается далеко внизу страницы, и вы получите полосу прокрутки того же размера, что и Firefox. Таким образом, похоже, что Chrome не «претендует» на фантомное пространство, если что-то на самом деле не приходитпосле него.)
Здесь - это jsfiddle.Обновленный код (одна дополнительная строка):
$(document).ready(function() {
var cols = new Array('#660', '#606', '#066', '#993', '#939', '#399', '#cc9', '#c9c', '#9cc', '#ffc', '#fcf', '#cff');
for(i = 0; i < 10; i++){
$('#target').append('<div id="new_' + i + '">Hello</div>');
$('#new_' + i)
.position({
my: 'left top',
at: 'left top',
of: '#target',
offset: '' + (i * 20) + ' ' + (i * 10)
})
.css('position', 'absolute')
.width(200)
.height(150)
.css('background-color', cols[i]);
}
});