Sto tentando di mostrare una "finestra di dialogo caricatore Ajax" che blocca l'interfaccia (modale) ma non ha sovrapposizione.Finestra di dialogo Modale JQuery senza sovrapposizione
Questo è come mi inizializzare la finestra di dialogo:
$("<div></div>").dialog({
modal: true,
dialogClass: "noOverlayDialog",
autoOpen: false, //opened later
...
});
ho aggiunto il seguente CSS per nascondere la sovrapposizione:
.ui-dialog.noOverlayDialog + .ui-widget-overlay { opacity: 0 !important; }
Tuttavia, quando chiamo dialog("open")
la sovrapposizione lampeggia poi scompare, come se L'ho nascosto usando Javascript. Stesso effetto con display:none;
o visibility:hidden
.
Per assicurarsi che fosse il css a rimuovere l'overlay e non qualcos'altro, ho rimosso la riga di css e sicuramente l'overlay era ora sempre visibile.
Perché sta succedendo? Ho pensato che i CSS statici non dovessero avere questo tipo di comportamento e l'overlay dovrebbe essere nascosto immediatamente senza flash.
Se non riesco a trovare una soluzione intuitiva, forse un'alternativa sarebbe quella di impostare l'opzione modale su false per impedire che l'overlay si sovrapposti, e quindi scrivere il codice per ottenere il comportamento modale. Ad ogni modo, ho bisogno di una soluzione funzionante.
Penso che l'opzione migliore potrebbe essere quella di sovrascrivere le effettive proprietà CSS stesse dichiarate nel foglio di stile jQueryUI che fa lo sfondo di sovrapposizione. Quando dico override, intendevo non cambiare lo stesso CSS, ma aggiungere proprietà nel tuo HTML di lavoro e ridichiarle. –
Non è quello che ho fatto? Il fatto è che non ho bisogno che sia globale ma si applica solo a finestre di dialogo specifiche che hanno la classe '.noOverlayDialog'. Se ciò non cambia il tuo suggerimento, per favore rispondi (non commentare) con un esempio e lo proverò. Grazie – parliament
No perché stai ridefinendo invece di sovrascrivere le classi attuali. –