Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Julio Cavallari

Popup personalizado no lugar do menu de contexto

Recommended Posts

Como eu faço pra quando o usuário clicar com o botão direito do mouse no meu site, impedir o menu de contexto de ser exibido, e exibir um popup no exato local do clique?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, eu queria que ao invés do menu, o que aparecesse fosse isso, fazer aparecer eu até consigo, deixando a div fixa, mas escondida,e quando o usuário disparasse o evento, ela ficasse visivel, mas eu queria que ela só fosse criada no momento que o evento fosse disparado e aparecesse no local exato onde o clique direito foi efetuado, e não num local fixo.

<div class="popup_botão_direito">&copy Julio Cavallari</div>
.popup_clique_direito {
    position: absolute;
    display: inline-block;
    padding: 10px;
    font-size: 12px;
    color: #fafafa;
    background-color: rgba(0,0,0,.76);
    border-radius: 5px;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

deixa a div com width e height 100%, e em seguida deixa as outras div com index-z maior do que dessa div pra ela ficar por fundo das outras.

Compartilhar este post


Link para o post
Compartilhar em outros sites

montei mais ou menos as pressas aqui acho que deva funfar talvez precisando alguns ajustes

 

no css

#menu{
    display: none;
    width: 200px;
    height: 300px;
    position: absolute;
}

 

no html

<div id='menu'>
    <!-- menu aqui -->
</div>

 

jQuery

<script src="https://code.jquery.com/jquery-3.0.0.js"></script>

<script>

    $('html').contextmenu(function(e){
  
        var max_top = $(window).scrollTop() + $(window).height() - $('#menu').outerHeight();
        var max_esq = $(window).scrollLeft() + $(window).width() - $('#menu').outerWidth();
        var menu_top = e.pageY;
        var menu_esq = e.pageX;
  
        if(e.pageY > max_top){
            menu_top = max_top - ($(window).height() - $(window).scrollTop());
        }
  
        if(e.pageX > max_esq){
            menu_esq = max_esq;
        }
  
        $('#menu').css('display', 'inline-block');
        $('#menu').css('top', menu_top + 'px');
        $('#menu').css('left', menu_esq + 'px');

        return false;

    });

    $('body').click(function(){
        $('#menu').css('display', 'none');
    });

</script>

 

dica - melhor construir a div normalmente e deixar ela oculta mas se quieres meter lhe ela no js é só criar uma var menu por exemplo e escrever o mesmo que escreveria no html só que vai ter que escapar aspas e coisas que tais por isso que digo que é melhor fazer ela normalmente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou perfeitamente, muito obrigado

 

Caso eu queria fazer a div ser escondida no scroll tbm, é só adicionar isso?

$('body').scroll(function(){
     $('#menu').css('display', 'none');
});

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá.
      Estou atualizando meu conhecimento com Front-End e me deparei com o seguinte problema.
      Criei um sistema para fazer o upload de imagens e alguns campos text.
      Algo bem simples para depois começar a estudar javascript para mostrar a miniatura....
      Mas quando saio do navegador Chrome ou da aba por mais de 3 minutos, ao retornar o navegador as vezes atualiza ou nem chega atualizar mas limpa os campos.
      Estou usando um Smart Motorola com Android, mas um amigo testou no iPhone e acontece a mesma coisa.
      Gostaria de saber se há como usar javascript para evitar isso?
      Agradeço desde já.

      <!DOCTYPE html>
      <html>
      <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <title>Uploader</title>
      </head>
      <body>
          <form action="?" method="post" enctype="multipart/form-data">
              <br><br>
              <div>selecione a imagem 1</div>
              <input type="file" name="foto1" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem1">
              
              <br><br>
              <input type="file" name="foto2" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem2">
              
              <br><br>

              <input type="file" name="foto3" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem3">
              
              <br><br>
              <input type="submit" value="Enviar">
              <br><br>
          </form>
      <?php
      if ($_SERVER['REQUEST_METHOD'] == 'POST')
      {
          vardump ($_FILES);
      }
      ?>
      </body>
      </html>
       
       
       
    • Por belann
      Olá!
       
      Estou usando o nextjs versão 15.2.3 e criei uma navbar que quando é carregado o programa aparece com a home, mas na hora de clicar na página produtos desaparece a navbar.
      A navbar esta sendo chamada no layout.tsx estou usando typescript
      e fica dessa forma
      <div>           <Navbar/>             <main>{children}</main>             </div>  
    • Por ILR master
      Fala pessoal, tudo bem?
       
      Eu tenho o seguinte código:
       
      <script>
         $(function(){
      var jElement = $('.fixar_banner');
      $(window).scroll(function(){
          if ( $(this).scrollTop() > 120 ){
              jElement.css({
                  'position':'fixed',
                  'top':'10px'
              });
          }else{
              jElement.css({
                  'position':'relative',
                  'top':'auto'
              });
          }
      });
      });
      </script>
       
      Porém, eu quero que a div fique fixa até que outro elemento apareça na tela, tipo o rodapé da página por exemplo. É mais ou menos como a página de notícia do uol.
      https://noticias.uol.com.br/internacional/ultimas-noticias/2025/01/19/sonho-americano-brasileiros-moram-em-carro-e-buscam-comida-no-lixo-nos-eua.htm
       
      Espero ter sido claro.
       
      Obrigado :)
       
    • Por violin101
      Caros amigos, saudações.

      Estou com uma dúvida, referente cálculo de valores em tempo real.

      Tenho uma rotina, que faz o cálculo, o problema é mostrar o resultado.

      Quero mostrar o RESULTADO assim: 0,00  ou  0.00

      Abaixo posto o código.
      jQuery('input').on('keyup',function(){ //Remover ponto e trocar a virgula por ponto var m = document.getElementById("pgRest").value; while (m.indexOf(".") >= 0) { m = m.replace(".", ""); } m = m.replace(",","."); //Remover ponto e trocar a virgula por ponto var j = document.getElementById("pgDsct").value; while (j.indexOf(".") >= 0) { j = j.replace(".", ""); } j = j.replace(",","."); m = parseFloat(jQuery('#pgRest').val() != '' ? jQuery('#pgRest').val() : 0); j = parseFloat(jQuery('#pgDsct').val() != '' ? jQuery('#pgDsct').val() : 0); //Mostra o Resultado em Tempo Real jQuery('#pgTroco').val(m - j); <<=== aqui estou errando })  
       
      Grato,
       
      Cesar
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.