2012-01-13 2 views
0

Это мое первое использование jquery вне учебника, поэтому, конечно, у меня возникнут некоторые проблемы. Я добавил код в jsfiddle здесь: http://jsfiddle.net/b2Nq9/3/ Похоже, он работает на jsfiddle (конечно, никаких изображений на jsfiddle, но атрибут alt вращается отлично), за исключением случаев, когда код работает с реальными изображениями, первое изображение в порядке, но когда 2-е и 3-е изображения вращают мой макет. Посмотрев на код, запущенный в firebug, я заметил, что код изменяет свойство отображения css. Первое изображение, которое работает, меняется между дисплеем: нет и отображает: inline, тогда как другие изображения меняются между дисплеем: none и display: block. Похоже, мне нужно настроить код, чтобы отображать оставшиеся изображения как встроенные, а не блокировать их вращение. Я не знаю, как это сделать, и был бы благодарен за помощь и помощь.jquery image slider setInterval issue

+0

Знаете ли вы ширину и высоту ваших изображений? они все одинаковые или все разные? –

+0

@Brian Glaz да все 3 одинакового размера, 800 * 235px –

ответ

0

Для того, чтобы сохранить ваш макет, вы хотите, чтобы добавить ширину и высоту к вашему контейнеру div. Если у div нет видимого содержимого в нем, и нет определенной ширины и высоты, он не займет места на странице, что может привести к разрыву макета. (пространство, занятое делом, по существу «рушится»). Это происходит потому, что в случае, если изображение еще не загружено, или короткий промежуток времени, в котором оба изображения установлены как отображение none, div не будет содержать видимого содержимого.

+0

, что сработало - спасибо большое –

1

.show() устанавливает следующий CSS на элемент: display : none.

Так что, если вы хотите установить display : inline затем использовать функцию .css() вместо:

elements.first().css({ display : 'inline' }); 

Вы будете иметь один и тот же вопрос с .fadeIn(1000), оживляет непрозрачность элемента после установки его display : block; opacity : 0. Попробуйте вместо этого:

elements.eq(counter).css({ opacity : 0, display : 'inline' }).animate({ opacity : 1 }, 1000); 

Вот демо: http://jsfiddle.net/b2Nq9/5/ (вы можете наблюдать элементы переключения между display : none и display : inline)

+0

спасибо, я изменил свой код, который по-прежнему работает с изменением, которое вы предложили, но проблема остается - согласно изображениям 2 и 3 firebug, изменяются между состоянием отображения none и block, not none и inline. Есть идеи? –

+0

Я обновил свой ответ примерно минуту назад, проверил демонстрацию: http://jsfiddle.net/b2Nq9/5/ – Jasper

+0

благодарит много, что сработало в том смысле, что в Firebug теперь отображается дисплей, чередующийся между дисплеем none и inline, но увы, это не так, по какой-то причине я не понимаю, помог мне. Элемент p под изображениями исчезает для 2-го и 3-го изображений, а элемент нижнего колонтитула переходит в середину экрана. Я собираюсь задать новый вопрос. Код доброты ошеломляет! Спасибо за вашу помощь, хотя –