Foros del Web » Programando para Internet » Jquery »

Dejar abierto acordeón según ancho

Estas en el tema de Dejar abierto acordeón según ancho en el foro de Jquery en Foros del Web. Buenas tardes Tengo este código que me abre y cierra una div (acordeón): @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original $ ( document ) . ...
  #1 (permalink)  
Antiguo 29/04/2016, 14:30
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 9 meses
Puntos: 9
Pregunta Dejar abierto acordeón según ancho

Buenas tardes
Tengo este código que me abre y cierra una div (acordeón):

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     $('#acordeon p').each(function() {
  3.         var tis = $(this), state = false, answer = tis.next('div').slideUp();
  4.         tis.click(function() {
  5.             state = !state;
  6.             answer.slideToggle(state);
  7.             tis.toggleClass('active',state);
  8.            
  9.     //Segun el ancho del navegador en menu se cierra o abre
  10.     if( $( document ).width() <= 480 ){
  11.     jQuery('.cajon_boton').show();
  12.    
  13.     } else if( $( document ).width() >= 680 ){
  14.     jQuery('.cajon_boton').hide(); 
  15.  
  16.     }
  17.     //Fin Segun el ancho del navegador en menu se cierra o abre
  18.            
  19.         });
  20.     });
  21. });

Yo deseo que cuando este grande el navegador permanezca abierta la div.

Esta hace que se me oculte, yo quiero que este abeirta
Código Javascript:
Ver original
  1. jQuery('.cajon_boton').hide();

Gracias por su ayuda
__________________
Diseñador Gráfico publicitario
  #2 (permalink)  
Antiguo 02/05/2016, 05:55
Avatar de ceaped  
Fecha de Ingreso: febrero-2004
Mensajes: 2.185
Antigüedad: 20 años, 9 meses
Puntos: 9
Respuesta: Dejar abierto acordeón según ancho

Hola holaaa
No logro resolver mi problema.

Lo hice así pero la primera div se me cierra:

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     $('#acordeon p').each(function() {
  3.         var tis = $(this), state = false, answer = tis.next('div').slideUp();
  4.  
  5. //Segun el ancho del navegador en menu se cierra o abre
  6.     if( $( document ).width() <= 480 ){
  7.     jQuery('.cajon_boton').show();
  8.    
  9.     } else if( $( document ).width() >= 680 ){
  10.     jQuery('.cajon_boton').show.slideDown();
  11.  
  12.     }
  13.     //Fin Segun el ancho del navegador en menu se cierra o abre
  14.  
  15.         tis.click(function() {
  16.             state = !state;
  17.             answer.slideToggle(state);
  18.             tis.toggleClass('active',state);
  19.            
  20.         });
  21.     });
  22. });

Código HTML:
Ver original
  1. <div class="cajon_boton"><img src="images/imagen_1.jpg" alt="imagen_1"><p>Enlace 1</p></div>
  2. <div class="cajon_boton"><img src="images/imagen_1.jpg" alt="imagen_2"><p>Enlace 2</p></div>
  3. <div class="cajon_boton"><img src="images/imagen_1.jpg" alt="imagen_3"><p>Enlace 3</p></div>

Alguien que me pueda ayudar.

Gracias
__________________
Diseñador Gráfico publicitario

Última edición por ceaped; 02/05/2016 a las 06:30 Razón: Agregar texto
  #3 (permalink)  
Antiguo 03/05/2016, 12:37
 
Fecha de Ingreso: abril-2015
Ubicación: Bogotá D.C - Colombia
Mensajes: 106
Antigüedad: 9 años, 7 meses
Puntos: 11
Respuesta: Dejar abierto acordeón según ancho

Hola, el problema que tienes es que no sabes como funciona el selector de JQuery.

Mira, no tienes que recorrer todos los Divs como lo estás haciendo, mira es muy simple, cuando haces esto:
Código Javascript:
Ver original
  1. jQuery('.cajon_boton')

Estás seleccionando todos los divs que tengan la clase cajon_boton, así que es simple al detectar el tamaño de la pantalla, o lo que sea, si deseas que sea el primer div quien se muestre, entonces para empezar seleccionas todos los divs y los escondes:
Código Javascript:
Ver original
  1. jQuery('.cajon_boton').hide()

Luego en una linea seguida de la anterior, pones; en donde lo que haces es buscar el primer objeto en ese arreglo de objetos seleccionado previamente con el código jQuery('.cajon_boton'), también lo puedes hacer con $('.cajon_boton') y no escribir jQuery todo el tiempo.
Código Javascript:
Ver original
  1. $($('.cajon_boton')[0]).show(); //O cualquier efecto, .fadeIn(), slideDown() etc.


Por otra parte te dejo un link de un acordeón con solo CSS sin ningún plugin o JQuery en donde solo he anexado un pequeño script de JavaScript nativo para capturar el tamaño de la pantalla, modificar el Dom un poco y hacer lo que quieres, recuerda que siempre hay maneras más fáciles y menos costosas en rendimiento para tus aplicaciones, así que pásate por el link, copia los scripts adecuadamente en un HTML, JS, y CSS por separado o en un solo HTML, y prueba, entendí que querías que el primer div tenia que aparecer abierto si el ancho del tamaño de la pantalla es menor o igual a 480 y de lo contrario tendría que iniciar cerrada al igual que los demás paneles del acordeón.

Enlace del código: https://jsfiddle.net/hd7ujdc9/

Éxitos!

Última edición por jhonjaider1000; 03/05/2016 a las 12:43

Etiquetas: ancho, dejar, según
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 07:12.