div будет скользить вниз, но он не будет скользить вверх

StackOverflow https://stackoverflow.com/questions/1750773

  •  20-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь показать и скрыть серию divs, используя toggle, slideUp и slideDown.Я могу перевести div в режим slideDown, но я не могу перевести его в режим slideUp.Раньше я использовал этот скрипт без инцидентов, так что я действительно в замешательстве относительно того, почему это не работает.Я включил свой скрипт и div, который я пытаюсь показать и скрыть.

Краткое примечание:Когда я поместил обычный старый тег p в раздел "скрытые транспортные средства", это сработало нормально.Это проявлялось и пряталось, как и должно было быть.Однако, когда я поместил свою таблицу обратно в этот div, это не сработало.

<script type="text/javascript">
$(document).ready(function() {
    $(".ShowVehicles").toggle(function() {
        $(".HiddenVehicles").slideDown(2000);
        $(this).text("Hide All");
    }, function () {
        $(".HiddenVehicles").slideUp(2000);
        $(this).text("Show All");                
    });
});

<div class="HiddenVehicles" style="display:none; width:730px;">
    (there will be a giant table in here)
    </div>
Это было полезно?

Решение

Я опубликовал этот совет в качестве комментария, и это помогло устранить проблему, поэтому я снова публикую его здесь:

Когда анимация скольжения вверх / вниз работает только в одну сторону, это часто ошибка позиционирования.Либо для элемента, который вы анимируете, необходимо установить значение position:relative или дочерние элементы элемента имеют float применяется к ним и не присваивает родительскому элементу истинную высоту.

Я бы попробовал добавить float:none к столу.Если это не сработает, попробуйте добавить position:relative к тому div#HiddenVehicles.

Другие советы

Для тех, у кого нет проблем с плавающей точкой / позиционированием, я обнаружил, что обновление с jQuery 1.10 до 1.11 решило проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top