好的,我有一个固定的导航侧栏,我有三个图标。单击图标时,div(以负边距隐藏)将滑出。当再次单击按钮时,显示的 div 将隐藏(通过幻灯片动画)。将对其他两个图标重复此操作。
我意识到有很多不同的方法可以执行此操作,并且有很多支持文档有不同的意见。我曾尝试通过 .click 和 .animate({"left": "+=56px"},"slow") 声明该操作,并且我还编写了触发 onclick 的函数。我意识到我可以轻松地让这个简单的任务变得比它需要的复杂得多。
关于执行此操作的最干净方法的任何建议?
编辑:感谢大家的意见。切换,虽然它本质上是极简主义的,但它不会从左到右。我最终使用的脚本是:
<?// Toolbar ?>
<div id="toolbar">
<img src="images/balihooGreyLogo.png" class="logo"/>
<a href="#" class="textIcon" title="Edit Copy"><img src="images/textIcon.png" border="0"/></a>
<a href="#" class="locationIcon"><img src="images/locationIcon.png" border="0"/></a>
<a href="#" class="mediaIcon"><img src="images/mediaIcon.png" border="0"/></a>
<a href="#" class="save">SAVE</a>
<a href="#" class="export">EXPORT</a>
</div>
<?// Text Input Slideout Box?>
<div class="textInput">
<h1>Email Copy</h1>
</div>
<script>
$('.textIcon').click(function () {
$('.textInput').slideToggleWidth();
});
jQuery.fn.extend({
slideRight: function() {
return this.each(function() {
$(this).animate({width: 'show'});
});
},
slideLeft: function() {
return this.each(function() {
$(this).animate({width: 'hide'});
});
},
slideToggleWidth: function() {
return this.each(function() {
var el = $(this);
if (el.css('display') == 'none') {
el.slideRight();
} else {
el.slideLeft();
}
});
}
});
</script>