【发布时间】:2011-08-15 11:30:27
【问题描述】:
我想使用 .append() 动态地将多个 DIV 添加到我页面中的目标 DIV,然后设置它们的高度和位置,以便它们在页面中都可见而无需滚动。
一切正常,但在 Firefox(Ubuntu 上的 3.6.16)中会出现一个垂直滚动条,就好像每个新 DIV 的高度都被添加到页面内容的总高度中一样——即使每个新 DIV 是在屏幕顶部附近,并且它的高度不在屏幕长度附近。 Ubuntu Chrome 运行良好。当我在追加新的 DIV 后向 jQuery 询问目标 DIV 的高度时,它并没有改变。
这是我为隔离问题而编写的测试页面的大部分页面代码 - 在此先感谢!
<style type="text/css">
#target {
width: 50px;
height: 50px;
background-color: #cfc;
}
</style>
<script>
$(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)
})
.width(200)
.height(150)
.css('background-color', cols[i]);
}
});
</script>
</head>
<body>
<div id="target">
</div>
</body>
【问题讨论】:
-
您是否尝试将
overflow:hidden;添加到#target元素? -
好吧,您将 150 像素高的元素附加到 50 像素高的元素上。为什么您不期待滚动条?
-
嗨 Pointy - 滚动条作为一个整体出现在浏览器窗口中,而不是我的小 50px div。
标签: jquery firefox scrollbar append