Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: JonaLamper en 17 Diciembre 2016, 12:24 pm



Título: Duda con botón (HTML y CSS)
Publicado por: JonaLamper en 17 Diciembre 2016, 12:24 pm
Muy buenas,

Tengo un botón que aparece el nombre del usuario "Hola, root" (por ejemplo). Al hacer hover, digamos que se voltea 90 grados y aparece un "Salir" en el que supuestamente al hacer click te deslogeas de la web. Esa transición dura aproximadamente 1 segundo, el problema es que el href que tiene el botón sólo actúa cuando está en "Hola, root" y, cuando se voltea 90 grados y aparece "Salir", ya no tiene efecto el href (o sea, al voltearse es como si pasase a ser otro botón distinto que no tiene asignado ningún href).

Captura de la transición del botón:

(http://thumbs.subefotos.com/362f74da47347b962e733bb83ebd118do.jpg) (http://subefotos.com/ver/?362f74da47347b962e733bb83ebd118do.jpg)

Código en HTML:

Código
  1.    <a href="/inicio">
  2.        <button class="salir pacifico"><span>Hola, <%=usuario%></span></button>
  3.    </a>

Código en CSS:

Código
  1. .salir {
  2.    border-top: 0px;
  3.    border-bottom: 0px;
  4.    border-right: 3px #0385c3 solid;
  5.    border-left: 3px #0385c3 solid;
  6.    cursor: pointer;
  7.    display: block;
  8.    /* border: 1px rgba(255, 255, 255, 0) solid; */
  9.    background: rgba(58, 121, 153, 0);
  10.    color: #2d2d2d;
  11.    margin-bottom: auto;
  12.    margin-top: 35px;
  13.    margin-right: 10px;
  14.    /* padding: 10px; */
  15.    font-size: 18px;
  16.    width: 160px;
  17.    float: right;
  18.    /* box-sizing: border-box; */
  19.    transition: all 1s ease;
  20.    transform-style: preserve-3d;
  21. }
  22.  
  23. .salir:hover {
  24. transform-origin: center bottom;
  25. transform: rotateX(-90deg) translateY(100%);
  26. }
  27. .salir:after {
  28. top: -120%;
  29. left: -3px;
  30. width: 100%;
  31. position: absolute;
  32. background: white;
  33. content: 'Salir';
  34. transform-origin: left bottom;
  35. transform: rotateX(90deg);
  36.        font-size: 18px;
  37.        border-right: 3px #0385c3 solid;
  38.        border-left: 3px #0385c3 solid;
  39.        color: white;
  40.        background: rgba(58, 121, 153, 0);
  41. }


¿Alguien sabe qué podría hacer para que cuando aparezca "Salir" me funcione el href del botón?


Muchísimas gracias  ;D


Título: Re: Duda con botón (HTML y CSS)
Publicado por: [u]nsigned en 17 Diciembre 2016, 14:01 pm
Probaste con jQuery, no se si ya lo usas en tu proyecto, deberias capturar el evento clic de la clase 'salir' y mandarlo a donde queres con JS:

Código
  1. $('.salir').on('click', function(e){
  2.   document.location = 'http://www.google.com';
  3. });


Título: Re: Duda con botón (HTML y CSS)
Publicado por: ivancea96 en 17 Diciembre 2016, 14:28 pm
Si le pones la clase "salir" al <a> en vez de al <button>, ¿cnsigues el efecto que buscas? Tal vez sea algo así lo que buscas, no estoy seguro.
Si tal, puedes separar la clase salir en 2: 1 con las animaciones y otro con el estilo, y la del estilo ponérsela al button.


Título: Re: Duda con botón (HTML y CSS)
Publicado por: JonaLamper en 17 Diciembre 2016, 16:55 pm
No me dejan usar jQuery :( sólo HTML, CSS y JS


Título: Re: Duda con botón (HTML y CSS)
Publicado por: maxam en 7 Enero 2017, 13:53 pm
Técnicamente jQuery es JS



He estado toquiteando un poco en un jsfiddle

https://jsfiddle.net/khakesqj/

y el problema lo tienes en que el elemento que aparece nuevo con el :after esta en una posición absolute y con un desplazamiento en negativo, lo que lo sitúa fuera del elemento clickable, por lo que nunca va a ejecutar el evento click sobre el elemento principal.


Mod: No hacer doble post.