我创建了一个从右向左滑动的滑块。我正在更换margin-right
以使幻灯片工作。jQuery从右向左滑动div将div滑出窗口
按照要求,我有一个树形视图,当用户点击任何节点时,它会打开一个滑动对话框,其中包含一些控件。当用户点击任何节点时,它应该先关闭先前打开的对话框,然后打开当前所选节点的对话框。当用户点击节点时,我可以完成这项工作,对话框打开,当用户再次点击相同节点或滑块按钮时,对话框隐藏。但不知何故,当用户点击任何其他节点时隐藏的代码无法正常工作。它将滑块按钮和对话框移开,我什么都看不到。
我用下面的代码:
if($('#slider-button').css("margin-right") == "400px") {
$(sliderDialog).animate({"margin-right": '-=400'});
$('#slider-button').animate({"margin-right": '-=400'});
} else{
$(sliderDialog).animate({"margin-right": '+=400'});
$('#slider-button').animate({"margin-right": '+=400'});
}
我认为,化繁为简,当用户点击同一发现,如果之前选择的对话框,比目前的不同不仅仅是调用隐藏对话框相同的代码再次节点。即。
$(sliderDialog).animate({"margin-right": '-=400'});
$('#slider-button').animate({"margin-right": '-=400'});
但是,它表现怪异。任何人,我在这里想念什么?
这是我的。
虽然这是我所要求的完美解决方案。我以某种方式努力为今天遇到的其中一种场景做这项工作。我意识到几个节点会打开一个不同大小(宽度)的对话框。我是否需要在数组/变量中存储不同的宽度,然后在SlideIt()函数中使用,还是有简化的方法?请建议。这里是一个更新的小提琴:http://jsfiddle.net/kuul13/wEVH8/1/ –
最简单的方法是获取您要设置动画的元素的宽度,并将其用于边距而不是设置硬性价值。 –
所以你的意思是获取当前动画对话框宽度的宽度,而不是现在在slideit方法中的硬编码值? –