我有一个按钮,点击后会滑动一个名为“inner”的 div。小提琴在这里:更新 - http://jsfiddle.net/NfXTY/1/
问题出在这条线上的某个地方var $marginLefty = $('.inner');
。
我还想知道如何以相反的方式启动动画,因此当您第一次单击它时它会滑入并再次单击会将其滑出。
我有一个按钮,点击后会滑动一个名为“inner”的 div。小提琴在这里:更新 - http://jsfiddle.net/NfXTY/1/
问题出在这条线上的某个地方var $marginLefty = $('.inner');
。
我还想知道如何以相反的方式启动动画,因此当您第一次单击它时它会滑入并再次单击会将其滑出。
问题是您使用的是绝对定位......因为左边距不起作用......left
改用
<div class="inner" style="left: 350px;">Animate this element's margin-left style property</div>
和
$(document).ready(function () {
$('#slidemarginleft button').click(function () {
var $marginLefty = $(this).next();
$marginLefty.animate({
left: parseInt($marginLefty.css('left'), 10) == 0 ? $marginLefty.outerWidth() : 0
});
});
});
演示:小提琴
.inner
需要一个起点margin-left:350px;
我在http://jsfiddle.net/NfXTY/2/更新了你的小提琴。你失踪+'px'
了$marginLefty.outerWidth()
。应该是$marginLefty.outerWidth()+'px'
。
内部类不正确。如果你想设置 margin-left 你应该设置left是 0,而不是 right:0,所以 .inner 类应该是
.slide .inner {
background-color: #44CC55;
bottom: 0;
color: #333333;
height: 36px;
left: 0;
padding: 6px;
position: absolute;
width: 338px;
}
或者继续设置正确的值,你应该设置margin-right值从右向左滑动,像这样:
$(document).ready(function() {
$('#slidemarginleft button').click(function() {
var $marginLefty = $(this).next();
$marginLefty.animate({
marginRight: parseInt($marginLefty.css('marginRight'),10) == 0 ?
$marginLefty.outerWidth() :
0
});
});
});
小提琴链接:fiddle