Pregunta

Estoy usando una técnica Slidoggle para mostrar y ocultar más de 100 divs llenos de información en mi aplicación. Tengo los botones "Mostrar todos" y "Ocultar todos" y me gustaría que también tengan la animación Slidoggle (en lugar de solo mostrar y ocultar todo). Sin embargo, en IE6, el Slidoggle se ejecuta muy lento cuando se aplica a cada elemento.

¿Alguien sabe cómo acelerar esto? Además, estoy cambiando iconos que están en el MSG_head, pero eso no lo está ralentizando. Si elimino el slidetoggle y lo reemplazo con solo un espectáculo/escondite (en el programa todo/escondite todo) funciona bien. Sin embargo, me gustaría tener la animación si es posible.

<p class="msg_head" onclick="toggleSelection($(this));">Heading</p>
<div class="msg_body">
   content
</div>

Y mi programa y ocultar todas las funciones ...

function toggleSelection(element) {
    element.next("msg_body").slideToggle(250);
    element.find(":first-child").toggleClass("ui-icon-circle-arrow-s");
    element.find(":first-child").toggleClass("ui-icon-circle-arrow-e");
}

function showall() {
    $(".msg_head").each(function() {
      $(this).next(".msg_body:hidden").slideToggle(250);
      $(this).find(":first-child").attr('class','ui-icon ui-icon-circle-arrow-s');
    });
}

function hideall() {
    $(".msg_head").each(function() {
      $(this).next(".msg_body:visible").slideToggle(250);
      $(this).find(":first-child").attr('class','ui-icon ui-icon-circle-arrow-e');
    });
}

Para el registro, la función individual ToggleSection () funciona sin problemas. Y reemplazar el slidetoggle en las funciones Showall y Hideall con Show and Hide también funciona bien. Realmente solo estoy viendo si hay una manera de obtener la animación Slidoggle sin que parezca ahogada.

¿Fue útil?

Solución

Esto no va a ser de mucha ayuda, pero voy a tener que ir con un simple "no" aquí. Simultáneamente, animar más de 100 div parece un poco mucho, pero es posible que pueda salirse con la suya cuando un visitante ejecuta un navegador moderno en una máquina decente. Pero si está buscando acelerar esto específicamente en IE6 ... no hay mucho que pueda hacer. El navegador es antiguo, incluido el motor de renderizado de JavaScript, y nunca podrá hacer lo que desee mientras se ve bien y bonito.

Otros consejos

¿Qué versión de jQuery estás usando? Si no está utilizando lo último (1.4.1), le recomiendo actualizar. Los desarrolladores de JQuery hicieron una importante revisión de rendimiento para la última versión para abordar temas como el que describe anteriormente. Aquí hay un enlace a las notas de la versión para obtener más información: http://jquery14.com/day-01/jquery-14

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top