#javascript #jquery #css
#javascript #jquery #css
Вопрос:
По какой-то причине следующее не имеет никакого эффекта. Скорее всего, это результат того, что у меня не было сна, и решение, вероятно, очень простое…
JS:
<script src="http://code.jquery.com/jquery-1.6.1.js"> </script>
<script>
function swapImages(){
var $active = $('#switch .active');
var $next = ($('#switch .active').next().length > 0) ? $('#switch .active').next() : $('#switch img:first');
$active.fadeOut(function(){
$active.removeClass('active');
$next.fadeIn().addClass('active');
});
}
$(document).ready(function(){
// Run our swapImages() function every 5secs
setInterval('swapImages()', 5000);
}
</script>
HTML:
<div id="switch"><img src="images/chalk.jpg" class="active" /><img src="images/students.jpg" /></div>
CSS:
#switch{
margin-left: auto;
margin-right: auto;
width: 996px;
height: 374px;
}
#switch img{
display:none;
}
#switch img.active{
display:block;
}
Ответ №1:
Я создал скрипку, у меня она отлично работает.
Единственное, что я изменил (помимо добавления цветов для целей презентации), это то, что я изменил ваш setInterval
вызов на этот:
setInterval(swapImages, 5000);
Как правило, передача строки в setInterval
не является хорошей практикой. Это работает как eval
, что, как мы все знаем, является злом :). Передайте ему функцию. Если вы действительно хотите сделать больше, используйте замыкание (в котором здесь нет необходимости).
Ответ №2:
для этого есть плагин 😉
http://jquery.malsup.com/cycle/lite/
это действительно легкий вес и предоставляет несколько приятных опций для анимации для переключения изображений.
Комментарии:
1. Хорошая находка! Хороший плагин, однако он не такой легкий, как то, что я написал … и то, что у меня есть, — это все, что мне нужно, поэтому я хотел бы заставить его работать, если это возможно. Я просто озадачен тем, почему это не работает.
Ответ №3:
Вы пропускаете );
в конце document.ready
функции и заменяете setTnterval
на фактическую функцию.
$(document).ready(function(){
// Run our swapImages() function every 5secs
setInterval(swapImages, 1000);
});
Рабочий пример:http://jsfiddle.net/niklasvh/4d6X5 /