Ho provato quasi tutti i plugin jQuery Modal che riesco a trovare sulla rete ma sono tutti molto voluminosi per quello di cui ho bisogno. Non ho bisogno di tutte le fantastiche funzionalità, voglio poter aprire un div e avere lo sfondo della pagina grigio trasparente come la foto qui sotto e avere il mio div in cima, è tutto ciò che devo fare quindi mi piacerebbe scrivere qualche jQuery per farlo invece di usare un plugin ingombrante. Qualcuno ha qualche piccolo codice che può fare questo compito? Lo sfondo trasparente è un'immagine o solo CSS?div modale semplice in jQuery?
risposta
EDIT: Questo è ovviamente superata. Quindi per favore riferisciti al post di Andrew Odri qui sotto.
Non so quanto sei bravo in CSS e JavaScript, ma la tua richiesta non dovrebbe essere così difficile da farti.
body, html { margin:0; padding:0; }
#modalTabelGray
{
position:absolute;
width:100%;
height:100%;
background-color:#000000;
filter:alpha(opacity=60);
opacity:0.6;
-moz-opacity:0.6;
z-index:100;
text-align:center;
vertical-align:middle;
}
#modalDiv
{
position:absolute;
z-index:101;
}
Non ho testato il codice, potrebbe non funzionare, ma avrete l'idea.
Sto usando la finestra di dialogo dell'interfaccia utente jQuery per questo. http://jqueryui.com/
È possibile utilizzare jQuery UI, che ha una finestra di dialogo plugin che supporta modale .. http://jqueryui.com/demos/dialog/#modal
In alternativa si potrebbe creare un div che attraversa l'intera finestra di dimensioni, impostare la sua opacità al 50% (0.5) e anche catturare e fermare tutti gli eventi per renderlo modale. Quindi visualizza il tuo div in cima ..
Vorrei NON consiglia l'interfaccia utente di jQuery: è un enorme e troppo complesso per quel compito semplice. Qui ci sono alcuni altri plugin:
Sì, non userò jqueryUI, ma voglio anche stare lontano da altri liek principali che hai elencato, sono "leggeri" ma non abbastanza leggeri per le mie esigenze – JasonDavis
Dirò http://malsup.com/jquery/block/Non l'ho mai visto ed è carino! – JasonDavis
Ho elencato solo alcuni dei plugin esistenti. Basta google "jquery modal" e ne troverai molti. Alcuni più complessi di altri :-) – Kordonme
Per citarne un altro plugin per questo compito è nyromodal che trovo facile da usare, ma offre ancora un sacco di opzioni di impostazione, se si dovrebbe trovare te stesso nella necessità di che (poi)
SimpleModal fa esattamente ciò che si vuole fare.
Questo è quello che uso io stesso; sembra bello, il codice è semplice e facile da capire e utilizza CSS e jQuery minimi.
Ecco il codice (e un violino per vederlo in azione: http://jsfiddle.net/cadkJ/125/):
HTML
<h1>Bacon ipsum dolor sit amet</h1>
<p>Magna adipisicing eu, pig ex pariatur non biltong nisi consequat do exercitation. Biltong exercitation consequat aute. Excepteur velit ribeye, et salami pariatur sed consequat enim ham. Tenderloin consequat et, in pastrami aute meatloaf beef spare ribs tri-tip beef ribs sed ut jerky strip steak. Fugiat turkey shank frankfurter pork loin pastrami.</p>
<button id="modal-launcher">Launch Modal Window</button>
<div id="modal-background"></div>
<div id="modal-content">
<button id="modal-close">Close Modal Window</button>
</div>
CSS
#modal-background {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: white;
opacity: .50;
-webkit-opacity: .5;
-moz-opacity: .5;
filter: alpha(opacity=50);
z-index: 1000;
}
#modal-content {
background-color: white;
border-radius: 10px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
box-shadow: 0 0 20px 0 #222;
-webkit-box-shadow: 0 0 20px 0 #222;
-moz-box-shadow: 0 0 20px 0 #222;
display: none;
height: 240px;
left: 50%;
margin: -120px 0 0 -160px;
padding: 10px;
position: fixed;
top: 50%;
width: 320px;
z-index: 1000;
}
#modal-background.active, #modal-content.active {
display: block;
}
jQuery
$(function(){
$("#modal-launcher, #modal-background, #modal-close").click(function() {
$("#modal-content, #modal-background").toggleClass("active");
});
});
Vuoi bloccare lo scorrimento?
Aggiungere la seguente regola CSS:
body.active { position: fixed; overflow: hidden; }
Sostituire la funzione jQuery con: (body
aggiunti alla linea 3)
$(function(){
$("#modal-launcher, #modal-background, #modal-close").click(function() {
$("body, #modal-content, #modal-background").toggleClass("active");
});
});
Vuoi per prevenire eventi click sullo sfondo da chiudendo il modale?
Sostituire la funzione jQuery con: (#modal-background
rimosso dalla linea 2)
$(function(){
$("#modal-launcher, #modal-close").click(function() {
$("#modal-content, #modal-background").toggleClass("active");
});
});
Freddo. Ho refactored il tuo javascript. http://jsfiddle.net/cadkJ/125/ –
@LarryBattle Questo è molto più bello; Grazie! –
molto bello !!!, grazie! – Kakitori
È possibile creare un semplice modale con puro HTML e CSS, non c'è bisogno di JavaScript e jQuery, che indirettamente, ridurre i tempi e lavoro.
html-->
<a href="#openModal">Open Modal</a>
<div id="openModal" class="modalDialog">
<div> <a href="#close" title="Close" class="close">X</a>
<h2>Modal Box</h2>
<p>This is a sample modal box that can be created using the powers of CSS3.</p>
<p>You could do a lot of things here like have a pop-up ad that shows when your website loads, or create a login/register form for users.</p>
</div>
</div>
css-->
.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0, 0, 0, 0.8);
z-index: 99999;
opacity:0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}
.modalDialog:target {
opacity:1;
pointer-events: auto;
}
.modalDialog > div {
width: 400px;
position: relative;
margin: 10% auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #fff;
background: -moz-linear-gradient(#fff, #999);
background: -webkit-linear-gradient(#fff, #999);
background: -o-linear-gradient(#fff, #999);
}
.close {
background: #606061;
color: #FFFFFF;
line-height: 25px;
position: absolute;
right: -12px;
text-align: center;
top: -10px;
width: 24px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
}
.close:hover {
background: #00d9ff;
}
visita this.
- 1. Creare un popup modale semplice
- 2. Un semplice DIV trascinabile utilizzando jQuery UI
- 3. modale bootstrap come oggetto jquery
- 4. jQuery Dialogo modale su iFrame
- 5. Evento personalizzato semplice in jquery
- 6. Jquery div div commutatore
- 7. jquery Fare semplice matematica?
- 8. Cercando di adattarsi semplice esempio modale ad ASP.NET datalist ripetitore
- 9. Come creare un semplice modulo a comparsa modale usando jquery e html?
- 10. jQuery: Caricare Dialogo modale Contenuto tramite Ajax
- 11. jQuery duplicato DIV in un altro DIV
- 12. Modulo modale in ASP.NET utilizzando jQuery
- 13. Esempio di finestra modale jQuery?
- 14. Finestra di dialogo Modale JQuery senza sovrapposizione
- 15. fare un semplice cursore jQuery
- 16. jQuery Simple Collapsible Div?
- 17. semplice div onclick mostra javascript
- 18. Fade in jquery div show
- 19. jQuery Equal Height Div
- 20. Bootstrap modale: Bilaterale contenuti allineati in piè di pagina modale
- 21. Come aprire modale dalla chiamata di funzione Jquery
- 22. Jquery | Ottieni elementi div in un'area definita
- 23. Come aprire una finestra modale Bootstrap usando jQuery?
- 24. Nascondere i div dei genitori in Jquery
- 25. jQuery - div trascinabili con zoom
- 26. jQuery, ordine casuale div
- 27. Finestra di dialogo modale mobile jQuery
- 28. Come visualizzare un avviso in Bootstrap modale
- 29. div blocco if jquery
- 30. refresh div con jquery
se questo funziona, questo è fondamentalmente quello che avevo bisogno di aiuto è la parte css – JasonDavis
Non ho testet, ma come detto, non dovrebbe essere così difficile da fare. La parte più importante è che non si annida il div in div con l'opacità, perché il contenuto diventerà anche trasparente. Puoi usare un PNG trasparente, se preferisci. –
Penso che creare la tua versione potrebbe essere una buona idea. Lavorerò per i primi 2-3 compiti che vuoi completare. Ma più tardi, è necessario che sia più complesso. La mia esperienza mi dice che finirà per essere più disordinato e finire per essere più grande, rispetto ad alcuni degli altri plugin là fuori. Ce ne sono tantissimi :-) – Kordonme