JQuery Accordion: проблемы с анимацией IE - PullRequest
17 голосов
/ 02 декабря 2008

Обновление

Я делаю это вики-сообществом по трем причинам:

  • Я не чувствую, что получил окончательный ответ, но
  • Я давно перестал нуждаться в ответе, потому что я прокрутил свою собственную функцию аккордеона
  • этот вопрос получает массу просмотров, так что очевидно, что многие все еще заинтересованы

Так что, если кто-то захочет изменить / уточнить этот вопрос и сделать его исчерпывающим руководством, будьте моим гостем.


Я работаю над страницей, используя элемент пользовательского интерфейса accordion jQuery . Я смоделировал свой HTML на этом примере, за исключением того, что внутри элементов <li> у меня есть несколько неупорядоченных списков ссылок. Как это:

  $(document).ready(function() {
     $(".ui-accordion-container").accordion(
        {active: "a.default", alwaysOpen: true, autoHeight: false}
     );
  });

  <ul class="ui-accordion-container">
  <li> <!-- Start accordion section -->
   <a href='#' class="accordion-label">A Group of Links</a>
   <ul class="linklist">
      <li><a href="http://example.com">Example Link</a></li>
      <li><a href="http://example.com">Example Link</a></li>
   </ul>

   <!--and of course there's another group -->

Проблема: IE Анимация воняет

Хотя IE7 прекрасно анимирует примерное меню аккордеона в документации, у меня есть проблемы с моим. В частности, одно меню аккордеона на странице движется вяло и имеет всплески содержимого. Я знаю, что это не проблема CSS, потому что то же самое происходит, если я не включаю свои файлы CSS.

Другое меню аккордеона на странице открывает первый раздел, по которому вы щелкаете, и после этого не открывает ни один из них.

Обе эти проблемы относятся к IE, и обе исчезают, если я использую опцию animated: false. Но я бы хотел оставить анимацию по умолчанию slide, поскольку она помогает пользователю понять, что делает меню.

Есть ли другой способ?

Ответы [ 16 ]

0 голосов
/ 21 декабря 2009

Просто измените autoHeight: false на autoHeight: true -> у меня это сработало, но не то, что я хочу ...

Найдите, что установка min-height для IE7 решила проблему.

0 голосов
/ 18 декабря 2009

У меня была проблема, когда у div под моим заголовком в аккордеоне, который имел белый фон на синем фоне страницы, исчезал цвет фона. Иногда при наведении указателя мыши на другой элемент заголовка он может отображаться; иногда при выделении текста он также будет появляться снова. Это было очень странно и происходило ТОЛЬКО в IE7.

Применение зума: 1; Исправлена ​​ошибка с таргетингом только на IE7 в div с пользовательским интерфейсом.

Надеюсь, это кому-нибудь поможет, потому что я потратил несколько часов, пытаясь отследить это.

0 голосов
/ 29 октября 2009

Я экспериментировал с той же проблемой, и через некоторое время возился, я обнаружил, что если у вас есть элемент, содержащийся внутри вашего основного div с относительным позиционированием, это заставит IE открыть аккордеон "рывком". Вот что я делал ...

<div id="accordion">

  <h3 class="oneLine">Asylum</h3>

  <div class="serviceBlockContent">
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque sed augue a enim convallis facilisis. Aenean eu ullamcorper nulla. Ut id urna quis augue bibendum commodo et a quam.</p>
  </div>

</div>

Я установил положение элемента H3 на относительное, и это привело к его разрыву в IE. Надеюсь, что это полезно.

0 голосов
/ 24 июля 2009

Имеются похожие проблемы, и я замечаю, что несколько человек предлагают посмотреть на типы документов. Я только что попытался просмотреть реальный сайт jQuery UI, и его демо-аккордеон отлично работает в ie6, предполагая, что - это проблема с моим кодом (для меня более детективная работа). Но я также замечаю, что doctype сайтов jquery.UI просто <!DOCTYPE html>

0 голосов
/ 29 марта 2009

Просто измените «autoHeight: false» на «autoHeight: true».

0 голосов
/ 02 декабря 2008

В настройках вы должны установить:

 navigation: true
...