Я пишу сценарий карусели, который перемещает изображения с помощью веб-переходов.Рекомендации о том, как избежать дорогостоящей перерисовки в моей карусели?
Вот действительно упрощенная скрипка в том, как это работает. http://jsfiddle.net/tUhZe/6/
Я хотел знать, есть ли у кого-нибудь какие-либо яркие идеи о том, как я могу уменьшить дорогостоящие репайны, которые происходят в начале каждого перехода?
Я попытался добавить 50 изображений в эту карусель, и это вызвало значительные проблемы в работе.
window.setInterval(function() {
var element = $('#container'),
active = $('.active'),
next = active.next('.slide');
if (!next.length) {
next = element.find('.slide:eq(0)');
}
// Move next image into position, ready to slide
next.addClass('next');
// Slight delay for next image to move into position
window.setTimeout(function() {
// Start moving active image out
active.addClass('prev');
// Start moving next image in
next.addClass('active')
.removeClass('next')
.bind('webkitTransitionEnd', function() {
next.unbind('webkitTransitionEnd');
// Move offscreen
active.removeClass('active prev next');
// Reassign active
active = next;
});
}, 100);
}, 2000);
В двух словах, это то, как работает это скрипт:
- Активное изображение в поле зрения (данный класс «активный»). Все остальные изображения (без класса «active») находятся вне экрана (вверху: 9999 пикселей).
- Следующее изображение перемещается рядом с активным изображением в процессе подготовки к переходу.
- Изменены активные и следующие классы изображений, которые одновременно позволяют одновременно перемещаться слева направо.
В конце перехода активное изображение расположено вне экрана.
Заранее спасибо.
Спасибо за ваш ответ Джай. Да, я прибегал к загрузке каждого изображения в DOM по мере необходимости. Таким образом, самое большее, в DOM есть два изображения одновременно. Однако изменение фонового изображения элемента является интересной идеей. Я действительно хотел, чтобы при переключении между изображениями был переходный эффект (слайд/затухание), поэтому это может быть немного ограничено использованием фона. Стоит исследовать, хотя. – antony