Domanda

Sto usando una tecnica Slidetoggle per mostrare e nascondere oltre 100 div pieni di informazioni nella mia applicazione. Ho pulsanti "Show All" e "Nascondi tutti" e vorrei che avessero anche l'animazione Slidetoggle (invece di mostrare e nascondere tutto). Tuttavia, su IE6, lo slidetoggle corre molto lentamente quando viene applicato a ciascun elemento.

Qualcuno sa come accelerare questo? Inoltre, sto cambiando icone che si trovano in msg_head, ma questo non sta rallentando. Se rimuovo lo slidetoggle e lo sostituisco con solo uno spettacolo/nascondi (nello spettacolo tutto/nascondi tutto), funziona bene. Tuttavia, mi piacerebbe avere l'animazione se possibile.

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

E il mio spettacolo tutto e nascondi tutte le funzioni ...

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');
    });
}

Per il record, la funzione individuale a leghe () funziona perfettamente. E sostituire lo slidetoggle nelle funzioni showall e hideall con show and hide funziona bene anche. Sto davvero vedendo se c'è un modo per ottenere l'animazione slidetoggle senza che sembri soffocata.

È stato utile?

Soluzione

Questo non sarà di grande aiuto, ma dovrò andare con un semplice "no" qui. Allo stesso tempo animare 100+ Div sembra un po 'troppo, ma potresti essere in grado di cavartela quando un visitatore esegue un browser moderno su una macchina decente. Ma se stai cercando di accelerare questo specifico in IE6 ... non c'è molto che puoi fare. Il browser è antico, incluso il motore di rendering JavaScript, e non sarà mai in grado di fare ciò che vuoi mentre lo fai mentre sembra liscio e carino.

Altri suggerimenti

Quale versione di jQuery stai usando? Se non stai usando l'ultimo (1.4.1), consiglio vivamente l'aggiornamento. Gli sviluppatori di JQuery hanno fatto una revisione delle prestazioni importanti per l'ultima versione per affrontare i problemi come quello che descrivi sopra. Ecco un link alle note di rilascio per ulteriori informazioni: http://jquery14.com/day-01/jquery-14

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top