Bootstrap输入组分段移动元素

我有这个HTML代码(使用Bootstrap 3 ):

Part title

而这个jQuery代码:

 $('.linkInterfaces').click(function () { if ($(this).find('i').hasClass('fa-link')) { $(this).animate({'marginLeft': '10px', 'marginRight': '10px'}, 1000); $(this).find('i').removeClass().addClass('fa fa-chain-broken'); } else { $(this).animate({'marginLeft': '0', 'marginRight': '0'}, 1000); $(this).find('i').removeClass().addClass('fa fa-link'); } }); 

我已经为你做了这个JSFIDDLE ,以便更好地理解我的问题。

如何确保中间按钮永远不会移动,如果你点击它,那些周围移动的人?

一种解决方案是为前一个和下一个元素的边距设置动画,而不是链接元素本身。

因此,不要在中心元素上设置边距,而是将其设置在旁边的元素上。 然后,您可以为前一个元素的边距设置动画,以便将边距从一侧传输到另一侧,并移除中心元素旁边元素的边距。

我更新了你的JSFiddle, 你可以在这里找到它。

基本上你会改变这样的按钮的样式:

    

然后像这样动画它们(注意prev()next()的用法,它们分别得到上一个和下一个兄弟元素):

 $('.linkInterfaces').click(function () { if ($(this).find('i').hasClass('fa-chain-broken')) { $(this).prev().animate({'marginRight': '0', 'marginLeft': '15px'}, 1000); $(this).next().animate({'marginLeft': '0'}, 1000); $(this).find('i').removeClass().addClass('fa fa-link'); } else { $(this).prev().animate({'marginRight': '15px', 'marginLeft': '0'}, 1000); $(this).next().animate({'marginLeft': '15px'}, 1000); $(this).find('i').removeClass().addClass('fa fa-chain-broken'); } });