Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Бен Гэлбрейт -

JavaScript - Графика

Все примеры / Мультимедиа / Графика

Предварительная загрузка изображений

Автор: Бен Гэлбрейт | добавлено: 14.04.2011, 21:24 | просмотров: 2646 (1+) | комментариев: 0 | рейтинг: *x6
Функция на JavaScript, которая позволяет проводить предварительную загрузку изображений, находящихся в файлах стилей (*.css). К сожалению, решение не кроссбраузерное, данный метод будет работать только в FireFox.

Инструкции

Для использования просто вызовите функцию:
PreloadImagesFromCss();

Код

function PreloadImagesFromCss(){
  var allImgs = [];//new array for all the image urls  
  var k = 0; //iterator for adding images
  var sheets = document.styleSheets;//array of stylesheets
        
  for(var i = 0; i<sheets .length; i++){//loop through each stylesheet
          var cssPile = '';//create large string of all css rules in sheet
          var csshref = (sheets[i].href) ? sheets[i].href : 'window.location.href';
          var baseURLarr = csshref.split('/');//split href at / to make array
          baseURLarr.pop();//remove file path from baseURL array
          var baseURL = baseURLarr.join('/');//create base url for the images in this sheet (css file's dir)
          if(baseURL!="") baseURL+='/'; //tack on a / if needed
          if(document.styleSheets[i].cssRules){//w3
                  var thisSheetRules = document.styleSheets[i].cssRules; //w3
                  for(var j = 0; j<thisSheetRules.length; j++){
                          cssPile+= thisSheetRules[j].cssText;
                  }
          }
          else {
                  cssPile+= document.styleSheets[i].cssText;
          }
                
          //parse cssPile for image urls and load them into the DOM
          var imgUrls = cssPile.match(/[^\(]+\.(gif|jpg|jpeg|png)/g);//reg ex to get a string of between a "(" and a ".filename"
          if(imgUrls != null && imgUrls.length>0 && imgUrls != ''){//loop array
                  var arr = jQuery.makeArray(imgUrls);//create array from regex obj        
                  jQuery(arr).each(function(){
                          allImgs[k] = new Image(); //new img obj
                          allImgs[k].src = (this[0] == '/' || this.match('http://')) ? this : baseURL + this;     //set src either absolute or rel to css dir
                          k++;
                  });
          }
  }//loop
  return allImgs;
}
Об авторе

Бен Гэлбрейт

Нет информации об авторе...
Бен Гэлбрейт
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Люди на Kbyte.Ru
Реклама
Счетчики