2012-09-22 18 views
19

Ho usato la biblioteca Gridster per un progetto che utilizza una griglia a più colonne drag-and-drop. Purtroppo, Gridster supporta solo Internet Explorer 9+. Ho bisogno di trovare una libreria semplice da usare simile che mi permetta di fare lo stesso usando IE8 e, se possibile, compatibile anche con IE7 e IE6.Alternativa al Gridster?

Quindi, c'è qualche libreria Gridster simile là fuori per il vecchio-IE? Sto usando jquery in questo progetto, quindi una libreria basata su jQuery potrebbe essere anche grandiosa.

P.S. Ne ho trovato uno chiamato AnimaDrag, ma non è buono come Gridster, ed è un po 'brutto.

+0

Ranocchiato in questo post durante la ricerca su gridster: sei in grado di utilizzare gridster con l'ultima versione di jQuery? (1.8.x). . . sembra che smetta di funzionare per qualcosa di più alto di 1.7.2 - puoi confermare? –

+0

No, non ero in grado. Ho iniziato con la v1.8.x ma ho riscontrato alcuni problemi. Ora sto usando v1.7.2. – pmking

+0

Lo stesso qui, ma il resto del mio portale utilizza l'ultima versione di jQuery e vorremmo evitare di usare .noConflict, ma è quello a cui mi sto rivolgendo per ora. Spero che gridster.net venga aggiornato di frequente, pubblicato anche su GitHub. –

risposta

0

Questo è corretto, gridster supporta solo Internet Explorer 9+, Firefox, Chrome, Safari e Opera.
Se vuoi sostenerci il più vecchio browser IE (6+), perché non costruire funzionalità intorno jQuery draggable e jQuery droppable

+2

Beh, questo è esattamente quello che non voglio fare .. Voglio dire, il gridster è già un completo multi-drag-n-drop completamente personalizzabile griglia di colonne. È facile da usare e non richiede molta programmazione. Mi stavo chiedendo se esistesse una libreria simile per le versioni precedenti di IE – pmking

0

Hai provato un polyfill per simulare le funzioni di data-set di gridster? http://www.orangesoda.net/jquery.dataset.html potrebbe essere una buona alternativa.

+0

Bene ..... Non sono sicuro che userei quell'alternativa .. sembra "tempo" e un po '"non-quello- facile "farlo ... se capisci cosa intendo. – pmking

+0

orangesoda.net sembra non esistere più. –

5

[N.B. Ho postato questa risposta nella pagina Github del progetto su una domanda simile che qualcuno aveva sollevato. Quindi controllare lì nel caso in cui questa risposta è stata corretta! - https://github.com/ducksboard/gridster.js/issues/74]

Ho passato gli ultimi giorni con un problema simile, anche se avevo solo bisogno del supporto IE8 (anche se sembra funzionare in IE7). Il problema era che il codice stava aggiornando la pagina correttamente, ma IE non avrebbe raccolto/valutato la sequenza di dati & modifiche al data-col mentre il mouse si muoveva. Ho provato diverse cose dalla soluzione di cui sopra, fino ad usare le librerie simili di modernizr & e, infine, cercando di legare all'evento IE solo "propertychange" senza successo.

sembra essere una limitazione IE8 che non sarà rivalutare un elemento che utilizza CSS Attributi mentre il mouse è premuto/spostamento. Tuttavia, rileva le modifiche di classe e in linea (motivo per cui è possibile trascinare il riquadro).

Pertanto l'unica soluzione che ho trovato con il tempo a disposizione era quello di aggiungere/rimuovere una classe falso nel codice ogni volta che i widget devono essere aggiornate utilizzando jQuery .toggle(). Così l'ho aggiunto nel codice quando l'anteprima e i widget sono stati passati nuovi dati-& attributi della riga dati. Ciò impone a IE8 di prendere il cambiamento e voilà l'anteprima funziona.

Ora sono sicuro che ci sia un (molto) meglio soluzione oltre a non utilizzare IE8 e non garantisce la compatibilità IE8, ma se sei bloccato allora si può trovare questo utile!

p.s. Dovevo solo preoccuparmi di IE8 +, IE7 sembrava essere a posto quando si utilizzava modernizr e plugin simili. Tuttavia non ho provato in IE6, ma dubito che avrebbe funzionato.

[EDIT]

A seguito del commento qui sotto ora ho caricato un esempio - anche se non ho potuto ottenere IE8 di bel gioco con JSFiddle. Così, l'esempio di farlo funzionare in IE8 è qui invece:

https://s3-eu-west-1.amazonaws.com/707074webfiles/gridster/ie8test.html

Ho incluso IE9.js che (soprattutto) aggiunge l'effetto di trasparenza per l'anteprima in questo caso.

La copia modificata del gridster.il file js è qui:

https://github.com/Grozzer/gridster.js/blob/master/dist/jquery.gridster.js

Essa comprende una serie di altre modifiche relative al ridimensionamento dei widget. Tuttavia, se si desidera solo modifiche IE8, suppongo che la risposta migliore sia cercarla per menzionare ie8compat.

Al momento della stesura di linea cambia per IE8 sono:

  • 717: compatibilità IE8 Aggiunta l'opzione
  • 2054-2056: Aggiunta l'opzione .toggle al widget anteprima
  • 2433-2435 : aggiunta l'opzione .toggle a qualsiasi widget salito
  • 2488-2490: aggiunta l'opzione .toggle a qualsiasi widget spostato verso il basso
+0

Eh, non sono del tutto sicuro di come la tua risposta mi aiuterebbe. Voglio dire, è una risposta informativa ma in realtà non so quali modifiche hai apportato per farlo funzionare. Un JSFiddle può essere utile in questi casi per mostrare quello che hai fatto – pmking

+0

Hai perfettamente ragione - mi dispiace. Ho preso un fork del codice e aggiornerò domani con i cambiamenti rilevanti. Ho provato ad aggiungerli dalla memoria (cattiva idea) ma ho avuto qualche strano comportamento. Tuttavia se si guarda qui (https: // github.com/Grozzer/gridster.js/blob/master/dist/jquery.gridster.js) e cercare ie8compat nel frattempo potresti avere un'idea migliore di cosa intendo. Quindi spero di essere più utile domani :) – Grozzer

19

Ci sono anche shapeshift: https://github.com/McPants/jquery.shapeshift

e Gridly: http://ksylvest.github.io/jquery-gridly/

che sono buone alternative ai Gridster. (ma nota che Gridly è solo per le piastrelle quadrate)

Modifica: Anche la confezione è molto interessante: http://packery.metafizzy.co/ . Tuttavia esso richiede una licenza commerciale per il progetto commerciale altrimenti:

Per i progetti non commerciali, personali, o open source e applicazioni, è possibile utilizzare Packery sotto i termini della GPL v3 licenza.

Edit 2: Questo può anche essere utile: https://github.com/uberVU/grid

14

Si può dare una prova per Gridstack: https://github.com/troolee/gridstack.js Si tratta di una prima versione, ma basata rigorosamente su gridster ed è anche sensibile.

+2

Ancora molto attivo un anno dopo e sembra fantastico. Grazie per averlo indicato. –