Foros del Web » Programando para Internet » Javascript » Frameworks JS »

[SOLUCIONADO] Cerrar pestaña de acordeón

Estas en el tema de Cerrar pestaña de acordeón en el foro de Frameworks JS en Foros del Web. Buenos días Tengo este código que es de un efecto de acordeón: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script type = "text/javascript" charset ...
  #1 (permalink)  
Antiguo 03/06/2015, 06:08
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Pregunta Cerrar pestaña de acordeón

Buenos días
Tengo este código que es de un efecto de acordeón:

Código Javascript:
Ver original
  1. <script type="text/javascript" charset="utf-8">
  2. $(document).ready(function(){
  3. var animTime = 300,
  4. clickPolice = false;
  5.  
  6. $(document).on('touchstart click', '.acc-btn', function(){
  7. if(!clickPolice){
  8. clickPolice = true;
  9.      
  10. var currIndex = $(this).index('.acc-btn'),
  11. targetHeight = $('.acc-content-inner').eq(currIndex).outerHeight();
  12.    
  13. $('.acc-btn h1').removeClass('selected');
  14. $(this).find('h1').addClass('selected');
  15.      
  16. $('.acc-content').stop().animate({ height: 0 }, animTime);
  17. $('.acc-content').eq(currIndex).stop().animate({ height: targetHeight }, animTime);
  18.  
  19. setTimeout(function(){ clickPolice = false; }, animTime);
  20. }
  21.    
  22. });
  23.  
  24. });
  25. </script>

Él abre la pestaña bien.
¿Cómo hago para abrir y cerrar la pestaña?

Gracias por su ayuda
__________________
Diseñador Gráfico publicitario
  #2 (permalink)  
Antiguo 04/06/2015, 06:07
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: Cerrar pestaña de acordeón

Intento así pero no me hace nada:

Código Javascript:
Ver original
  1. $(document).on('touchstart click', '.acc-btn', function(){
  2. if(!clickPolice){
  3. clickPolice = true;
  4. }
  5.  
  6. if(clickPolice = true){
  7. $('.acc-btn h1').removeClass('selected');
  8. }
__________________
Diseñador Gráfico publicitario
  #3 (permalink)  
Antiguo 05/06/2015, 05:49
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: Cerrar pestaña de acordeón

Intento de esta manera pero cuando doy clic sobre alguna pestaña se me desaparecen las demás:

Código Javascript:
Ver original
  1. $(document).on('touchstart click', '.acc-btn', function(){
  2. if( $( document ).height() == 50 ){
  3.     jQuery('.acc-btn').show();
  4.    
  5.     } else if( $( document ).height() >= 100 ){
  6.     jQuery('.acc-btn').hide(); 
  7.  
  8.     }

El ejercicio fue tomado de Codepen

Yo lo que necesito es que también tenga la opción de cerrarse.
__________________
Diseñador Gráfico publicitario

Última edición por ceaped; 05/06/2015 a las 06:06 Razón: Agregar texto
  #4 (permalink)  
Antiguo 09/06/2015, 05:52
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: Cerrar pestaña de acordeón

No he podido con este tema.
¿Alguien que por favor me ayude?
Gracias
__________________
Diseñador Gráfico publicitario
  #5 (permalink)  
Antiguo 11/06/2015, 14:16
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Cerrar pestaña de acordeón

Hola. Tu codigo es igual al del codepen que pusiste verdad? Y lo que necesitas es que al hacer el click en el titulo de la pestaña abierta, esa se cierre, al igual que lo hace cuando tocas en otra pestaña?


Lo que vos necesitas es similar a lo que hace el menu lateral izquierdo de este sitio?
EstudiosCOLL
__________________
Mike Sto - Programador web independiente
Grupo Latin.net

JSFiddle

Última edición por elmouse19; 11/06/2015 a las 16:01 Razón: Agregado
  #6 (permalink)  
Antiguo 12/06/2015, 05:13
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: Cerrar pestaña de acordeón

Hola elmouse19
Si pero eso es con lo que no he podido
__________________
Diseñador Gráfico publicitario
  #7 (permalink)  
Antiguo 12/06/2015, 15:36
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Cerrar pestaña de acordeón

Bueno, en ese caso, yo hice el sitio que te mostré en el mensaje anterior. Y a la función del menú que te mostré lo hice con un código mucho mas simple.

Te lo muestro.

JS/JQ
Código Javascript:
Ver original
  1. //Muestra / Oculata menu
  2.     $('.boton').click(function(){
  3.         if ( $(this).next().is( ":hidden" ) ) {
  4.             $('.options').slideUp('normal');
  5.             $(this).next().slideDown('normal');
  6.         } else {
  7.             $(this).next().slideUp('normal');
  8.         };
  9.     });

HTML
Código HTML:
<div id="menu">
    <h3 id="fotografia" class="boton">Fotografia</h3>
    <div class="options">
        <ul>
            <li><a href="">Opcion1</a></li>
            <li><a href="">Opcion2</a></li>
        </ul>
    </div>
    <h3 id="servicios" class="boton">Servicios</h3>
    <div class="options">
        <ul>
            <li><a href="">Opcion1</a></li>
            <li><a href="">Opcion2</a></li>
        </ul>
    </div>
    <h3 id="artistas" class="boton">Artistas</h3>
    <div class="options">
        <ul>
            <li><a href="">Opcion1</a></li>
            <li><a href="">Opcion2</a></li>
        </ul>
    </div>
</div> 
CSS
Código CSS:
Ver original
  1. #menu > .boton{
  2.     cursor: pointer;
  3.     margin: 0;
  4.     padding: 0;
  5.     font-size: 16px;
  6.     margin: 0 0 10px 0;
  7. }
  8. #menu > .boton:hover{
  9.     color: orange;
  10. }
  11. #menu > .options{
  12.     display: none;
  13. }
  14. #menu > .options > ul{
  15.     list-style: none;
  16.     margin: 0 0 15px 0;
  17.     font-size: 14px;
  18. }
  19. #menu > .options > ul > li{
  20.     padding: 3px;
  21. }

Este el código en funcionamiento:
JsFidlle

Espero que te sirva.
Sino avísame.

Saludos.
__________________
Mike Sto - Programador web independiente
Grupo Latin.net

JSFiddle

Última edición por elmouse19; 12/06/2015 a las 15:40 Razón: Agregadp
  #8 (permalink)  
Antiguo 13/06/2015, 07:28
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: Cerrar pestaña de acordeón

Hola Hola elmouse19
No logro que me funcione, mira como lo hice:

Código Javascript:
Ver original
  1. $('.acc-btn').click(function(){
  2.         if ( $(this).next().is( ":hidden" ) ) {
  3.             $('.acc-btn').slideUp('selected');
  4.             $(this).next().slideDown('selected');
  5.         } else {
  6.             $(this).next().slideUp('selected');
  7.         };
  8.     });

¿Cómo se ajustaría tu código a mi acordeón ó cómo hago para que mi acordeón funcione?

Gracias por tu ayuda
__________________
Diseñador Gráfico publicitario
  #9 (permalink)  
Antiguo 13/06/2015, 15:35
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Cerrar pestaña de acordeón

El problema es que estas tratando de cerrar el botón en lugar del contenido.

Código Javascript:
Ver original
  1. if ( $(this).next().is( ":hidden" ) ) {
  2.             $('.acc-btn').slideUp('selected');

Tu botón es .acc-btn. Ese div, o lo que sea, es el que captura el evento, y lo que tienes que cerrar es el contenedor del contenido por debajo del botón. Que según veo en tu codepen seria .acc-content.

Por lo que el codigo deberia quedar mas o menos asi.

Código Javascript:
Ver original
  1. $('.acc-btn').click(function(){
  2.         if ( $(this).next().is( ":hidden" ) ) {
  3.             $('.acc-content').slideUp('selected');
  4.             $(this).next().slideDown('selected');
  5.         } else {
  6.             $(this).next().slideUp('selected');
  7.         };
  8.     });

Así debería funcionar.

PD: tambien tenes que corregir el css. Guiándote de lo que te mostre.

PD2: Hoy mas tarde, tomo tu codepen, y lo modifico lo necesario para que funcione, y luego te lo envio.
__________________
Mike Sto - Programador web independiente
Grupo Latin.net

JSFiddle

Última edición por elmouse19; 13/06/2015 a las 15:44 Razón: Agregado
  #10 (permalink)  
Antiguo 13/06/2015, 15:54
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Cerrar pestaña de acordeón

Bueno.

Modifique todo el codepen que enviaste.

Este seria como queda completo para que funcione.
CODEPEN

Y te dejo el codigo por partes tambien aca.

HTML
Código HTML:
<div class="acc-container">
<div class="acc-btn"><h1>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h1></div>
<div class="acc-content">
    <p>Proin sodales, nibh eget sollicitudin consectetur, elit nisl malesuada urna, ac fermentum turpis urna id augue. Vestibulum eu consectetur nunc. In ultricies erat nisl, a fringilla risus viverra sed. Phasellus vel sodales elit. Morbi nec adipiscing dolor. Vivamus volutpat vitae velit vel sagittis.</p>
</div>

<div class="acc-btn"><h1>Curabitur et diam vitae dolor accumsan aliquet et in massa.</h1></div>
<div class="acc-content">
    <p>Nulla facilisi. Proin sodales dolor in odio lacinia, ut venenatis massa lobortis. Morbi congue dignissim nisi gravida consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam sed egestas diam. Nunc ut mauris tempus, rutrum massa vel, pellentesque velit. Nullam eget diam sit amet diam pretium scelerisque. Nunc sed odio nisi. Nunc odio est, rhoncus vitae risus a, sagittis ultrices mauris. Fusce scelerisque posuere pulvinar.</p>
</div>

<div class="acc-btn"><h1>Proin faucibus sem sed dapibus dapibus.</h1></div>
<div class="acc-content">
    <p>Praesent ultricies risus quis magna convallis, ac condimentum tellus laoreet. Donec dictum velit enim, nec hendrerit leo mattis sit amet.</p>
</div>

<div class="acc-btn"><h1>Praesent lobortis urna non est faucibus, vestibulum mattis diam sollicitudin.</h1></div>
<div class="acc-content">
    <p>Fusce eget ultricies ante. In augue urna, rhoncus ac tellus non, porta malesuada magna. Nulla tincidunt orci in metus rhoncus, at malesuada quam varius. Mauris sed tincidunt massa, ut cursus magna. Pellentesque cursus sapien turpis, id blandit magna tempus at.</p>
</div>
</div> 
CSS
Código CSS:
Ver original
  1. @import url(http://fonts.googleapis.com/css?family=Lato:400,700);
  2.  
  3. * {
  4.   -webkit-box-sizing:border-box;
  5.   -moz-box-sizing:border-box;
  6.   -o-box-sizing:border-box;
  7.   box-sizing:border-box;
  8. }
  9.  
  10. html, body {
  11.   background:#FFFFFF;
  12. }
  13.  
  14. .acc-container {
  15.   width:90%;
  16.   margin:30px auto 0 auto;
  17.   -webkit-border-radius:8px;
  18.   -moz-border-radius:8px;
  19.   -o-border-radius:8px;
  20.   border-radius:8px;
  21.   overflow: hidden;
  22. }
  23.  
  24. .acc-btn {
  25.   width:100%;
  26.   margin:0 auto;
  27.   padding:20px 25px;
  28.   cursor:pointer;
  29.   background:#34495E;
  30.   border-bottom:1px solid #2C3E50;
  31. }
  32.  
  33. .acc-content {
  34.   width:100%;
  35.   margin:0 auto;
  36.   display: none;
  37.   background:#2C3E50;
  38.   padding:30px;
  39.   height: auto;
  40. }
  41.  
  42. h1 {
  43.   font:700 20px/26px 'Lato', sans-serif;
  44.   color:#ffffff;
  45. }
  46.  
  47. p {
  48.   font:400 16px/24px 'Lato', sans-serif;
  49.   color:#798795;
  50. }

Js/Jq
Código Javascript:
Ver original
  1. $('.acc-btn').click(function(){
  2.     if ( $(this).next().is( ":hidden" ) ) {
  3.       $('.acc-content').slideUp('selected');
  4.       $(this).next().slideDown('selected');
  5.     } else {
  6.       $(this).next().slideUp('selected');
  7.     };
  8. });
__________________
Mike Sto - Programador web independiente
Grupo Latin.net

JSFiddle

Última edición por elmouse19; 13/06/2015 a las 15:58 Razón: Correccion
  #11 (permalink)  
Antiguo 13/06/2015, 17:05
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 10 meses
Puntos: 9
Respuesta: Cerrar pestaña de acordeón

Hola elmouse19
Muchas gracias por toda tu ayuda...
__________________
Diseñador Gráfico publicitario
  #12 (permalink)  
Antiguo 13/06/2015, 23:29
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba, Argentina
Mensajes: 74
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Cerrar pestaña de acordeón

De nada.

Siempre es divertido programar.

Hasta otra.
__________________
Mike Sto - Programador web independiente
Grupo Latin.net

JSFiddle

Etiquetas: cerrar, javascript, pestaña, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:35.