jQuery fadeOut не меняет свойство отображения - PullRequest
0 голосов
/ 08 июня 2011

Вкл. http://judi.simpleupdates.com/ Я пытаюсь сделать слайд-шоу изображений на странице, используя эффекты jQuery fadeIn и fadeOut. Оба пункта fadeIn без проблем. Однако fadeOut не изменяет свойство display div, которое должно исчезнуть. Любые идеи, почему это может работать не так, как ожидалось?

Это строка с ошибкой:

$( ".carousel_item:nth-child(" + selected + ")" ).fadeOut(600);   

ОБНОВЛЕНИЕ: Похоже, проблема связана с fadeOut для элемента, который не имеет width и height. Когда значения добавляются в свойства width и height div.carousel_item, вызов fadeOut работает правильно. Другой метод - удалить position: absolute из потомка img, в результате чего div вырастет до размеров img.

Ответы [ 3 ]

1 голос
/ 08 июня 2011

проблема, кажется, связана с fadeOut для элемента, который не имеет width и height.когда значения добавляются в свойства width и height div.carousel_item, вызов fadeOut работает правильно.другой метод - удалить position: absolute из потомка img, в результате чего div вырастет до размеров img.

спасибо за всю вашу помощь и предложения!

0 голосов
/ 08 июня 2011

Может ли быть так, что вам просто нужно заменить текущие и выбранные переменные друг с другом в селекторе jQuery? когда я правильно понимаю, вы хотите постепенно затухать в токе и в выбранном, не так ли?

0 голосов
/ 08 июня 2011

Изменение настройки отображения в HTML на <div id="txt2" class="carousel_item" style="display: none; "> должно корректно вызвать fadeIn / fadeOut.

Вам также может потребоваться изменить jQuery на: $( ".carousel_item:nth-child(" + selected + ")" ).fadeOut(600).hide();

Вы вызываете fadeIn / fadeOut для элементов, которые оба установлены на display: block.Для работы необходимы альтернативные состояния.

ОБНОВЛЕНИЕ После загрузки локальной копии вашего сайта измените функцию showhide () в вашем js на:

var inc = 1
function showhide(current) {
    if (inc == 1) current = 2;
    $( ".carousel_item:nth-child(" + selected + ")" ).fadeIn(600);
    $( ".carousel_item:nth-child(" + current + ")" ).fadeOut(600).hide();
    selected = current;
    inc++;
}

работает в моем тестировании.Надеюсь, это работает для вас.Я добавил счетчик, так как ваш начальный счет, кажется, устанавливает selected и current на 1.

...