C'è un modo per reinizializzare stellar.js su ridimensionamento browser/finestra in modo che gli offset degli elementi vengano riadattati?Stellar.js può modificare gli offset degli elementi durante il ridimensionamento delle finestre?
risposta
Dopo un po 'di investigazione, ho capito questo. Nel mio caso, ho "diapositive", che contengono i miei elementi stellari, e sono dimensionati in base alla larghezza/altezza della finestra. Avevo bisogno di ridimensionarli per cambiare l'orientamento della tavoletta.
$(window).resize(function(){
winHeight = $(window).height();
$("#scrollWrapper > div").height(winHeight);
// Find out all my elements that are being manipulated with stellar
var particles = $(window).data('plugin_stellar').particles;
// Temporarily stop stellar so we can move our elements around
// data('plugin_stellar') let's me access the instance of stellar
// So I can use any of its methods. See stellar's source code
$(window).data('plugin_stellar').destroy();
$.each(particles, function(i, el){
// destroy() sets the positions to their original PIXEL values.
// Mine were percentages, so I need to restore that.
this.$element.css('top', '');
// Once the loop is finished, re-initialize stellar
if(particles.length - 1 == i){
$(window).data('plugin_stellar').init();
}
});
});
Se non importa che gli elementi vengono impostate sui valori dei pixel originali per sinistra/in alto, allora si può solo chiamare distruggere & init uno dopo l'altro:
$(window).data('plugin_stellar').destroy();
$(window).data('plugin_stellar').init();
Se istanziare stellare su un elemento (ad esempio, $("#element").stellar();
anziché $.stellar();
) quindi sostituire "finestra" con il selettore.
Prima di tutto, sembra che potresti avere un problema con l'allineamento orizzontale (supponendo che sia un sito verticale). Se è così, è probabile che solo è necessario disabilitare lo scorrimento orizzontale:
$.stellar({
horizontalScrolling: false
});
Se questo non risolve il problema, Stellar.js dispone di una funzione non documentata che consente di aggiornare il plugin.
Per esempio, supponiamo che hai usato Stellar.js in questo modo:
$.stellar();
è possibile aggiornare con il seguente:
$.stellar('refresh');
Così, per aggiornarlo sul ridimensionamento, si potrebbe fare qualcosa del genere:
$(window).resize(function() {
$.stellar('refresh');
});
Speriamo che questo risolva tutto per te.
Esattamente quello che stavo cercando! – hjuster
grazie per l'opzione "Aggiorna" :) –
Ho notato anche dispari sui cellulari che potrebbero essere causati dal modo in cui Firefox/Chrome ridimensiona la visualizzazione Web quando si scorre verso il basso, quando la barra della posizione diventa nuovamente visibile?
La risposta alla tua domanda è in una sezione del documentation: "Configurazione di tutto":
// Refreshes parallax content on window load and resize
responsive: false,
Quindi, questo è falso per impostazione predefinita. Per abilitare ciò, utilizzare .stellar({responsive:true})
La vera domanda è ... perché questo è disabilitato di default? Sembrava risolvere il problema che stavo notando, tranne che per iOS.
- 1. Perché gli elementi di Stellar.js non si spostano?
- 2. Impossibile modificare il contenuto di visitato: prima degli pseudo-elementi
- 3. Prevenzione degli elementi sovrapposti durante l'animazione
- 4. Impossibile modificare il colore degli elementi del tema bootstrap
- 5. Rxjs durante l'osservazione degli aggiornamenti degli oggetti e delle modifiche
- 6. Gli elementi Java compaiono solo dopo il ridimensionamento della finestra
- 7. Errore PaperClip NotIdentifiedByImageMagickError durante il ridimensionamento delle immagini
- 8. Come modificare il colore degli elementi di QStringListModel?
- 9. Redux-Form: impossibile modificare il valore degli elementi di input
- 10. Come modificare l'aspetto predefinito degli handle di ridimensionamento Fabric.js?
- 11. Ridimensionamento della pagina Jquery Mobile durante la transizione delle pagine
- 12. Modificare lo stile degli elementi Android in ActionBar
- 13. Uso corretto degli offset/push
- 14. Intellij, come disabilitare l'animazione incredibilmente lenta delle finestre degli strumenti
- 15. Newlines tra gli attributi degli elementi HTML?
- 16. Più finestre, ma anche più elementi sulla barra delle attività
- 17. Selenio: test delle finestre a comparsa
- 18. Come modificare il comportamento degli stub?
- 19. programmazione cambiare il confine finestre colore delle finestre 7
- 20. In Android, quali sono gli inserti delle finestre?
- 21. Come modificare l'ordine degli elementi in una colonna flexbox?
- 22. Elementi di ridimensionamento di Chrome 21 durante la rotazione
- 23. Il metodo vector.resize() chiama i costruttori di elementi predefiniti durante il ridimensionamento?
- 24. jQuery ridimensionamento elementi ruotati
- 25. Non ridisegnare la finestra durante il ridimensionamento
- 26. Aggiunta dell'indirizzo di base + Offset per modificare il valore
- 27. Il ridimensionamento di un elemento attiva l'evento di ridimensionamento della finestra
- 28. Impossibile modificare gli elementi di elenco in un loop Python
- 29. Ridimensionamento UIView durante l'animazione
- 30. Perché Firebug aggiunge -moz- * stili durante l'ispezione degli elementi CSS?
Ero in quasi la situazione esatta qui, grazie per questo! Questo dovrebbe essere incluso nella funzione come una sorta di funzione, l'aggiornamento immediato non aiuta in questo caso, penso che abbia qualcosa a che fare con l'utilizzo delle percentuali. – AlexKempton