0
我有一个小脚本(网页的完整代码位于下方),它将一些div添加到由按钮单击激活的滑动面板。Div在滑动后更改其大小
<script type="text/javascript">
// Click the button and let the panel slide.
$('#button').click(function(){
$('.panel').slideToggle('slow');
});
// Insert a huge amount of divs.
var divsToPlace = 100;
for (i = 0; i < divsToPlace; i++) {
$('<div/>', {'class': 'addDiv'}).appendTo('#addHere');
}
</script>
Divs确实具体。他们形成了一种谜题:10×10的100格,粘在一起。他们不应该为他们每个人创建一个新行,他们应该是空的。
.addDiv {
border: 1px solid #000;
margin-top: -1px; /* these two provide a "net" */
margin-right: -1px;
float: left; /* doesn't allow divs to start from a new line. */
width: 10px;
height: 10px;
}
所以我希望得到的结果是一个有“网”的面板。 Div必须通过脚本插入,这非常重要。
但问题是面板的底部边框在动画停止后跳起来。 divs保留在面板和页面主体之间。
我不知道如何解决这个问题,我请求你的帮助。
完整的代码在这里插入,这样你就可以轻松地尝试:
<html>
<head>
<style type="text/css">
#header {
margin: auto;
width: 100px;
text-align: center;
}
.addDiv {
border: 1px solid #000;
margin-top: -1px;
margin-right: -1px;
float: left;
width: 10px;
height: 10px;
}
.panel {
border: 1px solid #666;
display: none;
margin: auto;
width: 305px;
}
</style>
</head>
<body>
<div id='header'><button id='button'>Panel</button></div>
<div class='panel'>
List:
<ul>
<li>li 1</li>
<li>li 2</li>
</ul>
<div id='addHere'></div>
</div>
</body>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'></script>
<script type="text/javascript">
$('#button').click(function(){
$('.panel').slideToggle('slow');
});
var divsToPlace = 100;
for (i = 0; i < divsToPlace; i++) {
$('<div/>', {'class': 'addDiv'}).appendTo('#addHere');
}
</script>
</html>
附:如果我很多地提到一个元素,我应该怎么做:
// This way?
/* ... code
$('#element').thing();
$('#element').another_thing();
... code ...
$('#element').more_thing();
code... */
// Or this way?
/* ... code
var element = $('#element');
element.thing();
element.another_thing();
... code ...
element.more_thing();
code... */
用这个创建一个js小提琴,它会更容易帮助你。 –
对于初学者,我会创建仅具有正确和底部边距的div,因此您不必使用负边距 –