¿Cómo hacer que un acordeón de arranque colapse al hacer clic en el div de encabezado?
En un acordeón Bootstrap, en lugar de requerir un clic en el texto a
, quiero que se contraiga al hacer clic en cualquier lugar del div panel-heading
.
Estoy usando Bootstrap 3. Así que en lugar de acordeón, es sólo un panel plegable. ¿Alguna idea de cómo hacer todo el panel clickable?
5 answers
Todo lo que necesita hacer es usar...
-
data-toggle="collapse"
-
data-target="#ElementToExpandOnClick"
...en el elemento que desea hacer clic para activar el efecto contraer / expandir.
El elemento data-toggle="collapse"
será el elemento para activar el efecto.
El atributo data-target
indica el elemento que se expandirá cuando se active el efecto.
Opcionalmente, puede establecer el data-parent
si desea crear un efecto de acordeón en lugar de colapsable independiente, por ejemplo:
data-parent="#accordion"
También añadiría el siguiente CSS a los elementos con data-toggle="collapse"
si no son etiquetas <a>
, por ejemplo:
.panel-heading {
cursor: pointer;
}
Aquí está un jsfiddle con el html modificado de la documentación Bootstrap 3.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-08 18:17:54
Otra forma es hacer que su <a>
llene todo el espacio de la panel-heading
. Usa este estilo para hacerlo:
.panel-title a {
display: block;
padding: 10px 15px;
margin: -10px -15px;
}
Compruebe esta demo ( http://jsfiddle.net/KbQyx/).
Luego, al hacer clic en el encabezado, en realidad está haciendo clic en el <a>
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-25 09:31:29
He notado un par de defectos menores en el jsfiddle de Grim.
Para conseguir que el puntero cambie a una mano para todo el panel use:
.panel-heading {
cursor: pointer;
}
He eliminado la etiqueta <a>
(un problema de estilo) y he mantenido data-toggle="collapse" data-parent="#accordion" data-target="#collapse..."
en panel-heading
en todo momento.
He añadido un método CSS para mostrar chevron, usando font-awesome.css
en mi jsfiddle:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-21 16:11:51
La solución simple sería eliminar el relleno de .panel-heading
y agregarlo a .panel-title a
.
.panel-heading {
padding: 0;
}
.panel-title a {
display: block;
padding: 10px 15px;
}
Esta solución es similar a la anterior publicada por calfzhou, ligeramente diferente.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-31 02:17:00
En realidad mi panel tenía este icono de flecha de estado de colapso y probé otras respuestas en este post , pero la posición del icono cambió, así que aquí está la solución con el icono de flecha de estado de colapso.
Añadir este CSS personalizado
.panel-heading
{
cursor: pointer;
padding: 0;
}
a.accordion-toggle
{
display: block;
padding: 10px 15px;
}
El crédito va a este contestador de post.
La esperanza ayuda.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:02:50