2014-05-22 10 views
12

Wie ändere ich den Offset von Affix (Twitter Bootstrap 3) auf einen anderen Wert?Zurücksetzen/Ändern des Offsets von Bootstrap Affix

Als ich versuchte, die Methode zweimal so zu nennen, scheint die zweite ignoriert werden und hat keine Wirkung:

$('#navbar-main').affix({ offset: 100}); 
$('#navbar-main').affix({ offset: 200}); // ---> the offset will not change to 200px 

Zurücksetzen des .affix Rückruf vor affix das zweite Mal nicht helfen Aufruf entweder:

$('#navbar-main').affix({ offset: 100}); 
$(window).off('.affix'); 
$('#navbar-main').affix({ offset: 200}); // ---> the offset will not change to 200px 

Antwort

11

Hier ist wie. Der Schlüssel ist, sowohl off auf .affix, als auch removeData auf dem Affixed-Element zu rufen. Lassen Sie uns sagen, dass ich das Affix von #navbar-main zurücksetzen möchten:

Bootstrap < 3 (von es128):

$(window).off('.affix') 
$('#navbar-main').removeData('affix').removeClass('affix affix-top affix-bottom') 
$('#navbar-main').affix({ offset: 400}) 

Bootstrap 3 (von Dysko):

$(window).off('.affix') 
$('#navbar-main').removeData('bs.affix').removeClass('affix affix-top affix-bottom') 
$('#navbar-main').affix({ offset: 400}) 
38

erinnern, haben Sie Zugriff auf der Konstruktor jederzeit mit der Datenmethode ...

also wenn Sie nur versuchen, einen Wert zu aktualisieren ... Sie tun können:

$('#navbar-main').data('bs.affix').options.offset = newOffset 

Hoffnung, dass < 3 Fett

+9

Vergessen Sie nicht, die mit einer oberen/unteren Eigenschaft ist ein Objekt versetzt hilft. Ich habe .options.offset = x; und nicht .options.offset.top = x; und mein angebundener div wurde verrückt. – Aknosis

+0

Werke. Danke @fat – kach

Verwandte Themen