2013-03-25 6 views
1

Я использую плагин bootstrap affix, чтобы сделать div на правом углу слайда с контентом. У меня есть другой раздел в верхней части окна, который будет расширяться, чтобы открыть другой раздел, чтобы показать некоторые детали. Проблема заключается в том, что когда раздел div of details расширяется, смещение прикрепленного div должно обновляться. Я сделал что-то вроде этогоДинамическое изменение смещения в плагине аффикса

<div class="affixed-box" data-offset-top="160" data-spy="affix"> 

    $(".detail-btn").click(function(){ 
    if ($(".opened").length > 0) //The detail div is expanded 
     { 
     $(".affixed-box").attr('data-offset-top','160'); 
    } 

    else  
    { 
    $(".affixed-box").attr('data-offset-top','400'); 
    } 
    }); 

Я проверенный от инструментов разработчика, что офсетных обновляется, но поведение прикрепленным элемента остается таким же (он остается получать проставленный на то же верхнем положение). Что еще мне нужно сделать, чтобы динамически обновлять верхнее значение смещения.

+0

Здесь является скрипкой, которая объясняет подобное поведение. http://jsfiddle.net/fztdv/1/ Когда кнопка show нажата, значение смещения должно быть изменено. – Dania

ответ

2

Имел подобную ситуацию с новым сайтом, над которым я работаю (слайд-шоу над прикрепленным navbar изменяет высоту при изменении размера окна, оставляя прикрепленный navbar с неправильным смещением).

Ответ удалить данные аффикс из кэша данных Jquery, а затем удалить все классы, связанные с аффиксом плагином, например:

$([selector]).removeData('affix').removeClass('affix affix-top affix-bottom'); 

я обнаружил, что в нижней части https://github.com/twbs/bootstrap/issues/5870

0

Смотрите, если scrollspy («Обновить») метод помогает: http://twitter.github.com/bootstrap/javascript.html#scrollspy

.scrollspy('refresh') 

При использовании scrollspy в сочетании с добавлением или удалением элементов из DOM, вам нужно вызвать метод обновления как так :

$('[data-spy="affix"]').each(function() { 
var $spy = $(this).scrollspy('refresh') 
}); 

Удачи вам!

+0

Вот скрипка, которая объясняет подобное поведение jsfiddle.net/fztdv/1. Когда кнопка show нажата, значение смещения должно быть изменено. – Dania

+0

Спасибо за jsfiddle, это облегчает представление проблемы. Еще не решил. Посмотрите, поможет ли вам ответ на этот вопрос: http://stackoverflow.com/questions/11421408/bootstrap-scrollspy-doesnt-work-inside-tabs –

+0

Почему не просто: '$ ('[data-spy =" affix " ] ') ​​scrollspy (.' Обновить '); '? – whiskeysierra

0

В соответствии с manual вы можете передать атрибуту данных функцию, возвращающую значение смещения.

Если вы начнете JSFiddle с проблемой, то кто-то, кто уже справился с ней, может вам помочь.

+0

Вот скрипка, которая объясняет подобное поведение jsfiddle.net/fztdv/1. Когда кнопка show нажата, значение смещения должно быть изменено. – Dania

 Смежные вопросы

  • Нет связанных вопросов^_^