使用本指南的最后一个示例( http://www.learningjquery.com/2009/02/slide-elements-in-different-directions ),我试图让一个div在按钮后面切换。
期望结果示例: 最初,包含输入字段、按钮B和按钮C的div将被隐藏。当点击“滑动”按钮时,div从按钮后面滑入,直到div右侧与“滑动”键之间达到特定距离(边距)。 再次单击按钮(和/或按下“Esc”键时),div将“滑入”按钮。
下面是脚本,后面是演示:
$('#button1').click(function() { var $marginRighty = $('.inner'); $marginRighty.animate({ marginRight: parseInt( $marginRighty.css('marginRight'),10) == 0 ? $marginRighty.outerWidth() : 0}); });
https://jsfiddle.net/ishq786/xqb5a7dq/
小提琴: https://jsfiddle.net/xqb5a7dq/6/
$('#button1').on('click', function() { animateDiv(); }) $(document).keyup(function(e) { if (e.keyCode === 27 && $('.inner').hasClass('visible')) { animateDiv(); } }) function animateDiv () { $('.inner').toggleClass('visible'); $('.inner').animate({ width: 'toggle', },350); }
.toolbar { width: 100%; display: inline-block; overflow: hidden; white-space: nowrap; margin: 0px auto; padding: 5px 0px; background-color: skyblue; } #divA, #divB { display: inline; } .inner { float: right; display: none; padding-right: 20px; } #button1 { float: right; margin-right: 5px; } input, button { padding: 5px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class='toolbar'> <div> <button id="button1">Slide it</button> </div> <div class="inner is-hidden"> <div id="divA"> <input type="text" /> <input type="password" /> </div> <div id="divB"> <button>Button B</button> <button>Button C</button> </div> </div> </div>
Fiddle .
我已经解决了你的一些问题。我承认,我不确定你希望结果如何,所以我将把调整留给你。但主要有两件事;
position: relative
position: absolute