在Bootstrap 3导航栏中,您可以将元素标记为活动:



使用jQuery,我可以创建一个简单的函数,以在单击时将活动状态从一个元素“切换”到另一个元素。

$('li').click(function() {
    if ( ! $(this).hasClass('active')) {
        $('li.active').removeClass('active');
        $(this).addClass('active');
        // Do more stuff here
    }
});


完整示例:http://jsfiddle.net/zEh3h/2/

现在,我要实现的是单击时从一个元素到另一个元素的深灰色背景的“滑动”效果。它也应该在响应式垂直模式下工作。

是否有引导本机的方法来实现这一目标?还是jQuery解决方法?我在文档中找不到关于此的任何信息。

最佳答案

也许是这样的:

$('li').click(function() {
    if ( ! $(this).hasClass('active')) {
        $('li.active').removeClass('active');
        $(this).addClass('active');
        offsetTop = $(this).offset().top - $('.nav').offset().top;
        offsetLeft = $(this).offset().left - $('.nav').offset().left;
        $('.nav-background').animate({
            top: offsetTop,
            left: offsetLeft,
            right: $('.nav').width() - $(this).width() - offsetLeft,
            bottom: $('.nav').height() - $(this).height() - offsetTop
        }, 'slow', 'linear');
    }
});


当视图从响应垂直模式或后退更改时,您仍然需要更新背景的位置。

jsFiddle:Example

10-04 13:07