Слайдер картинок, улучшение быстродействия
Привет!
Была поставлена задача сделать простенький слайдер в "шапку" сайта. Как результат использовал скрипт "самодельного слайдера" с одного сайта - _http://cave-dell-vino.kiev.ua. Он работает так - сначала загружает все картинки с помощью скрипта jquery.imgpreload.min.js(_http://www.farinspace.com/jquery-image-preload-plugin/), потом по таймеру меняет CSS свойство z-index картинок. Там ещё можно под определенные адреса страниц прописывать свои картинки. JS code: var bannerTime = 4000; var bannerFade = 2000; var bannerCount = 0; var bannerThis = 0; var remove = false; $(document).ready(function(){ $('.head-photo div').each(function(){ $(this).attr({'id':'slide-'+bannerCount}); $(this).css({'z-index':'1','display':'block'}); bannerCount++; }); $('.head-photo div').each(function(){ $(this).attr({'id':'slide-'+bannerCount}); $(this).css({'z-index':'1','display':'block'}); bannerCount++; }); if(location.href.toLowerCase().search('/') >=0) { //для главное страницы показываем все слайды кроме 1 и 2 $('#slide-0').remove(); $('#slide-1').remove(); remove = true; } if(location.href.toLowerCase().search('/contacts.html') >=0) { //например, для контактов, все слайды remove = true; } if(remove == false) { $('#slide-0').remove(); $('#slide-1').remove(); $('#slide-2').remove(); $('#slide-3').remove(); $('#slide-4').remove(); //. . . . . $('#slide-40').remove(); } bannerCount = 0; $('.head-photo div').each(function(){ $(this).attr({'id':'slide-'+bannerCount}); $(this).css({'z-index':'1','display':'block'}); if(bannerCount == 0) { $(this).css({'z-index':'10'}); } bannerCount++; }); $('.head-photo div img').imgpreload ({ each: function() { // this = dom image object // callback executes when each image loads }, all: function() { // this = jQuery image object selection // callback executes when all images are loaded if(bannerCount > 1) { setTimeout('nextSlide();',bannerTime); } } }); }); function nextSlide() { if(bannerThis < (bannerCount-1)) { bannerThisTemp = bannerThis+1; } else { bannerThisTemp = 0; } $('#slide-'+bannerThisTemp).css({'z-index':'9'}); $('#slide-'+bannerThis).css({'z-index':'10'}); $('#slide-'+bannerThis).fadeOut(bannerFade,function(){ $('#slide-'+bannerThisTemp).css({'z-index':'10'}); $('#slide-'+bannerThis).css({'z-index':'1','display':'block'}); bannerThis = bannerThisTemp; setTimeout('nextSlide()',bannerTime); }) } HTML code: <div class="head-photo"> <div class="slide"><img src="/images/head-0.jpg" alt="" /></div> <div class="slide"><img src="/images/head-1.jpg" alt="" /></div> <div class="slide"><img src="/images/head-2.jpg" alt="" /></div> <div class="slide"><img src="/images/head-3.jpg" alt="" /></div> <!-- . ...................... --> <div class="slide"><img src="/images/head-40.jpg" alt="" /></div> </div> Но у меня получилось картинок 40, размером 25-50кб. Вот я свои 40 штук картинок и "разбил по определенным адресам страниц. Скажем если есть сайт визитка с 10 страницами, то по 4 фото-слайда на страницу. А если есть какая то категория, то так же на категорию(по 4-5 картинок). Вроде нормально, но меня терзают смутные сомнения, может есть какой то другой способ или более продвинутое решение. Да и надоело каждые раз при переходе на другую страницу созерцать слайды сначала. Что ли рандом какой то сделать... Возникла у меня идея переделки: каким то макаром одноразово загрузить все 40 картинок при первом открытие сайта, а потом при навигации по сайту, должен изменяться только контент страниц, а картинки в шапке-слайде должны какбы в своем потоке.... т.е. показ не начинается сначала, а продолжается далее. Может есть более "дружественное" решение в плане производительности или у Вас есть предложения по улучшению. Буду благодарен за помощь. Буду рад советам и примерам =) |
Ну можно упростить задачу... подгружать последовательно в один блок по тайму по картинке... и всё...
Ни пойму зачем создавать столько элементов html coda |
можно создать массив из путей к картинкам, а потом при загрузке страницы рандомно выбирать какое-нибудь количество и загружать на страницу
ЗЫ сделать "картинки в шапке-слайде должны какбы в своем потоке.... " не то что бы невозможно, но придется потанцевать с бубном и не факт, что получится |
Часовой пояс GMT +3, время: 11:03. |