Estou projetando uma página da web. Quando clicamos no conteúdo do email denominado div, como posso mostrar uma janela pop-up contendo um email de marcador e uma caixa de texto?
Dependendo da situação, convém carregar o conteúdo pop-up por meio de uma chamada ajax. É melhor evitar isso, se possível, pois isso pode dar ao usuário um atraso mais significativo antes de ver o conteúdo. Aqui, algumas alterações que você deseja fazer se seguir essa abordagem.
Está funcionando, obrigado. Mas vou incluir outro botão de registro de chamadas. quando clicado, o formulário de registro deve aparecer. Para isso, incluí a mesma função e alterei o nome de ids e classes. O problema é que quando clico no botão Fechar do formulário de registro, ele alterna o formulário de contato. Need help @jason Davis
Rajasekar
1
para remover o html que você adiciona ao fechar, altere o método close para $ (". close"). live ('clique', função () {$ (". pop"). slideFadeToggle (); $ ("# contact") .removeClass ("selected"); $ (". pop"). remove (); // adicione isso ... return false;}); isso corrigirá o problema que você obtém ao clicar no link mais de uma vez antes de fechar o pop-up. boa resposta por sinal, liso e simples ...
Jonx
10
@yahelc Tente clicar em "Inscrever-se" mais de uma vez consecutivamente e clique em "Cancelar". Uh-oooohhhh.
AVProgrammer
Não concordo totalmente com a parte "ótimo código". Muito conteúdo é codificado em javascript. Sim, todos nós temos javascript em nossos navegadores há dias, mas simplesmente não é o caminho certo para fazer web. HTML é para conteúdo, js para "maquiagem". A resposta de Karim79 é melhor da minha perspectiva. Inclua sua marcação no HTML a que pertence, oculte-a e apenas a mostre e apresente como pop-up. Solução muito mais limpa do que imprimir muito HTML diretamente de javascript. Você não tem que usar o jQueryUI se você não precisa dele, há um milhão de maneiras de colocar algum conteúdo em um pop-up
ZolaKt
12
De acordo com o site jQuery , a partir do jQuery 1.7, o método .live () foi descontinuado. Use .on () para anexar manipuladores de eventos. Usuários de versões mais antigas do jQuery devem usar .delegate () em vez de .live (). . Então eu substituído .Live com .no . Clique aqui para ver uma versão mais genérica do código de Andy . Além disso, eu usei ligação CDN para a versão mais recente do jQuery na página real<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.min.js"></script>
Diferente do Jquery, se eu tenho que incluir algum plugin? @Karim
Rajasekar
8
@Rajasekar - Você precisará fazer o download do pacote jQuery UI e incluir, pelo menos, ui.core.js e ui.dialog.js para obter um Diálogo. Se você deseja que o diálogo seja arrastável e / ou redimensionável, será necessário incluir ui.draggable.js e ui.resizable.js.
É leve, suporta pop-ups aninhados, orientado a objetos, suporta botões dinâmicos, responsivo e muito mais. A próxima atualização incluirá envios de formulários Popup Ajax etc.
<dialog id="window"><h3>SampleDialog!</h3><p>Lorem ipsum dolor sit amet</p><button id="exit">CloseDialog</button></dialog><button id="show">ShowDialog</button>
Eu recebo um TypeError: dialog.show is not a functionerro. Você poderia incluir um JSFiddle?
Magiranu
0
Aqui está um pop-up muito simples:
<!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 modalreturnfunction(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>
Respostas:
Primeiro o CSS - ajuste isso da maneira que quiser:
E o JavaScript:
E finalmente o html:
Aqui está uma demonstração e implementação do jsfiddle.
Dependendo da situação, convém carregar o conteúdo pop-up por meio de uma chamada ajax. É melhor evitar isso, se possível, pois isso pode dar ao usuário um atraso mais significativo antes de ver o conteúdo. Aqui, algumas alterações que você deseja fazer se seguir essa abordagem.
O HTML se torna:
E a ideia geral do JavaScript se torna:
fonte
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.min.js"></script>
Confira jQuery UI Dialog . Você usaria assim:
O jQuery:
A marcação:
Feito!
Lembre-se de que é o caso de uso mais simples que existe, sugiro ler a documentação para ter uma idéia melhor do que pode ser feito com ela.
fonte
Eu uso um plugin jQuery chamado ColorBox , é
fonte
Experimente o Magnific Popup , é responsivo e pesa apenas cerca de 3 KB.
fonte
Visite este URL
Demonstrações da caixa de diálogo Jquery UI
fonte
Eu acho que este é um ótimo tutorial sobre como escrever um pop-up simples de jquery. Além disso, parece muito bonito
fonte
Há um exemplo bom e simples disso, aqui: http://www.queness.com/post/77/simple-jquery-modal-window-tutorial
fonte
Plug-in pop-up Modal extremamente leve. POPELT - http://welbour.com/labs/popelt/
É leve, suporta pop-ups aninhados, orientado a objetos, suporta botões dinâmicos, responsivo e muito mais. A próxima atualização incluirá envios de formulários Popup Ajax etc.
Sinta-se livre para usar e twittar feedback.
fonte
Janela pop-up simples usando html5 e javascript.
html: -
JavaScript: -
fonte
TypeError: dialog.show is not a function
erro. Você poderia incluir um JSFiddle?Aqui está um pop-up muito simples:
Uma solução mais flexível pode ser encontrada neste tutorial: http://www.jacklmoore.com/notes/jquery-modal-tutorial/ Aqui está close.png da amostra.
fonte
APENAS LÓGICA POPUP CSS! Tente fazê-lo. FÁCIL! Eu acho que isso pode ser popular no futuro
fonte