Sto progettando una pagina web. Quando facciamo clic sul contenuto della div con nome di posta, come posso mostrare una finestra pop-up contenente un'etichetta e-mail e una casella di testo?
Sto progettando una pagina web. Quando facciamo clic sul contenuto della div con nome di posta, come posso mostrare una finestra pop-up contenente un'etichetta e-mail e una casella di testo?
Risposte:
Innanzitutto il CSS - modifica questo come preferisci:
a.selected {
background-color:#1F75CC;
color:white;
z-index:100;
}
.messagepop {
background-color:#FFFFFF;
border:1px solid #999999;
cursor:default;
display:none;
margin-top: 15px;
position:absolute;
text-align:left;
width:394px;
z-index:50;
padding: 25px 25px 20px;
}
label {
display: block;
margin-bottom: 3px;
padding-left: 15px;
text-indent: -15px;
}
.messagepop p, .messagepop.div {
border-bottom: 1px solid #EFEFEF;
margin: 8px 0;
padding-bottom: 8px;
}
E il JavaScript:
function deselect(e) {
$('.pop').slideFadeToggle(function() {
e.removeClass('selected');
});
}
$(function() {
$('#contact').on('click', function() {
if($(this).hasClass('selected')) {
deselect($(this));
} else {
$(this).addClass('selected');
$('.pop').slideFadeToggle();
}
return false;
});
$('.close').on('click', function() {
deselect($('#contact'));
return false;
});
});
$.fn.slideFadeToggle = function(easing, callback) {
return this.animate({ opacity: 'toggle', height: 'toggle' }, 'fast', easing, callback);
};
E infine l'html:
<div class="messagepop pop">
<form method="post" id="new_message" action="/messages">
<p><label for="email">Your email or name</label><input type="text" size="30" name="email" id="email" /></p>
<p><label for="body">Message</label><textarea rows="6" name="body" id="body" cols="35"></textarea></p>
<p><input type="submit" value="Send Message" name="commit" id="message_submit"/> or <a class="close" href="/">Cancel</a></p>
</form>
</div>
<a href="/contact" id="contact">Contact Us</a>
Ecco una demo e un'implementazione di jsfiddle.
A seconda della situazione, potresti voler caricare i contenuti popup tramite una chiamata Ajax. È meglio evitarlo, se possibile, in quanto potrebbe dare all'utente un ritardo più significativo prima di vedere il contenuto. Qui un paio di modifiche che vorrai fare se segui questo approccio.
HTML diventa:
<div>
<div class="messagepop pop"></div>
<a href="/contact" id="contact">Contact Us</a>
</div>
E l'idea generale di JavaScript diventa:
$("#contact").on('click', function() {
if($(this).hasClass("selected")) {
deselect();
} else {
$(this).addClass("selected");
$.get(this.href, function(data) {
$(".pop").html(data).slideFadeToggle(function() {
$("input[type=text]:first").focus();
});
}
}
return false;
});
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.min.js"></script>
Dai un'occhiata alla finestra di dialogo dell'interfaccia utente di jQuery . Lo useresti così:
Il jQuery:
$(document).ready(function() {
$("#dialog").dialog();
});
Il markup:
<div id="dialog" title="Dialog Title">I'm in a dialog</div>
Fatto!
Tieni presente che si tratta del caso d'uso più semplice che ci sia, suggerirei di leggere la documentazione per avere un'idea migliore di cosa si possa fare.
Uso un plugin jQuery chiamato ColorBox , lo è
Prova il Magnific Popup , è reattivo e pesa circa 3 KB.
Visita questo URL
Demo della finestra di dialogo dell'interfaccia utente di Jquery
Penso che questo sia un ottimo tutorial per scrivere un semplice popup jquery. Inoltre sembra molto bello
C'è un buon esempio semplice di questo, qui: http://www.queness.com/post/77/simple-jquery-modal-window-tutorial
Plugin popup modale estremamente leggero. POPELT - http://welbour.com/labs/popelt/
È leggero, supporta popup nidificati, orientato agli oggetti, supporta pulsanti dinamici, reattivi e molto altro. Il prossimo aggiornamento includerà invii di moduli Popup Ajax ecc.
Sentiti libero di usare e tweet feedback.
Semplice finestra popup utilizzando html5 e javascript.
html: -
<dialog id="window">
<h3>Sample Dialog!</h3>
<p>Lorem ipsum dolor sit amet</p>
<button id="exit">Close Dialog</button>
</dialog>
<button id="show">Show Dialog</button>
JavaScript: -
(function() {
var dialog = document.getElementById('window');
document.getElementById('show').onclick = function() {
dialog.show();
};
document.getElementById('exit').onclick = function() {
dialog.close();
};
})();
TypeError: dialog.show is not a function
errore Potresti per favore includere un JSFiddle?
Ecco un popup molto semplice:
<!DOCTYPE html>
<html>
<head>
<style>
#modal {
position:absolute;
background:gray;
padding:8px;
}
#content {
background:white;
padding:20px;
}
#close {
position:absolute;
background:url(close.png);
width:24px;
height:27px;
top:-7px;
right:-7px;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
var modal = (function(){
// Generate the HTML and add it to the document
$modal = $('<div id="modal"></div>');
$content = $('<div id="content"></div>');
$close = $('<a id="close" href="#"></a>');
$modal.hide();
$modal.append($content, $close);
$(document).ready(function(){
$('body').append($modal);
});
$close.click(function(e){
e.preventDefault();
$modal.hide();
$content.empty();
});
// Open the modal
return function (content) {
$content.html(content);
// Center the modal in the viewport
$modal.css({
top: ($(window).height() - $modal.outerHeight()) / 2,
left: ($(window).width() - $modal.outerWidth()) / 2
});
$modal.show();
};
}());
// Wait until the DOM has loaded before querying the document
$(document).ready(function(){
$('a#popup').click(function(e){
modal("<p>This is popup's content.</p>");
e.preventDefault();
});
});
</script>
</head>
<body>
<a id='popup' href='#'>Simple popup</a>
</body>
</html>
In questo tutorial è possibile trovare una soluzione più flessibile: http://www.jacklmoore.com/notes/jquery-modal-tutorial/ Ecco close.png per l'esempio.
SOLO LOGICA POPUP CSS! Provalo. FACILE! Penso che questo possa essere un hack popolare in futuro
<a href="#openModal">OPEN</a>
<div id="openModal" class="modalDialog">
<div>
<a href="#close" class="close">X</a>
<h2>MODAL</h2>
</div>
</div>
.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;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
display: none;
pointer-events: none;
}
.modalDialog:target {
display: block;
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);
}