我正在使用Slidetoggle技术来显示和隐藏我的应用程序中充满信息的100+部门。我有“显示全部”和“隐藏”按钮,我也希望它们也具有Slidetoggle动画(而不是仅仅显示和隐藏所有)。但是,在IE6上,将Slidetoggle应用于每个元素时的运行速度非常慢。

有人知道如何加快速度吗?另外,我正在切换MSG_head中的图标,但这并没有减慢它。如果我删除了slidetoggle,然后仅用显示/隐藏(在所有节目中/隐藏)中替换它,则表现良好。但是,如果可能的话,我想拥有动画。

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

和我的节目全部隐藏了所有功能...

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

对于记录,单个togglesection()函数可完美地执行。并用Show and Hide替换Showall中的Slidetoggle和HideAll功能也很好。我真的只是看到是否有一种方法可以获取Slidetoggle动画而又没有cho乱。

有帮助吗?

解决方案

这不会有太大帮助,但是我将不得不在这里使用一个简单的“否”。同时对100+ Div进行动画化似乎有点多,但是当访客在像样的机器上运行现代浏览器时,您也许可以摆脱它。但是,如果您想在IE6中专门加快这一点,那么您无能为力。浏览器很古老,包括JavaScript渲染引擎,并且永远无法在看起来光滑和漂亮的同时做您想要的事情。

其他提示

您正在使用什么版本的jQuery?如果您不使用最新(1.4.1),那么我强烈建议您升级。 JQuery的开发人员对最新版本进行了重大改进,以解决您上面描述的问题。这是发行说明的链接以获取更多信息: http://jquery14.com/day-01/jquery-14

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top