9 009 Скрипты / Parallax

Прокручивающийся произвольно фон

Прокручивающийся произвольно фон

Постоянно прокручивающееся фоновое изображение.

HTML и CSS

В начале подключаем, как обычно, последнюю версию библиотеки jQuery. Далее подключаем файл custom.js обеспечивающий прокрутку фона. И при желании, подключаем фикс pngFix.js исправляющий ошибку прозрачности в браузерах ie5.5/6.

<head>
<link rel="stylesheet" type="text/css" media="screen" href="css/style.css" />
<script type="text/jаvascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/jаvascript" src="js/custom.js"></script>
<script type="text/jаvascript" src="js/pngFix.js"></script>
<script type="text/jаvascript">
  DD_belatedPNG.fix('.png-fix');
</script>
</head>

В XHTML используется всего два DIV-а, содержимое которых можно изменять.

<body>
   <div id=“container”>
      <div id=“overlay”>
          <span class="red">Контент,который можно изменить.</span>
      </div>
   </div>
</body>

Применяем следующие CSS стили для наших DIV-ов

#container {
  background:url(../images/gradient.jpg);
  position:relative;
  width:899px;
  height:358px;
}
#overlay {
  position:absolute;
  top:0;
  left;0;
  width:899px;
  height:358px;
  background:url(../images/overlay.png);
}

JS

Сам код, находящийся в файле custom.js:

$(function() {
 // Define the height of your two background images.
           //The image to scroll
 var backgroundheight = 2000;
           //The image to overlay
 var backgroundheight_two = 1000;
 // Create a random offset for both images’ starting positions
        offset = Math.round(Math.floor(Math.random()* 2001));
        offset2 = Math.round(Math.floor(Math.random()* 1001)); 
 function scrollbackground() {
             //Ensure all bases are covered when defining the offset.
     offset = (offset < 1) ? offset + (backgroundheight – 1) : offset – 1;
  // Put the background onto the div
     $('#container').css('background-position', '50%' + offset + 'px');
     // Enable the function to loop when it reaches the end of the image
     setTimeout(function() {
   scrollbackground();
   },100
  );
    }
 // Initiate the scroll
 scrollbackground();
 // Use the offset defined earlier and apply it to the div.
     $('#overlay').css('background-position', '50%' + offset2 + 'px');<br>
});

Который нужно будет немного подправить. Во-первых, изменить высоту используемых двух фоновых изображений в пикселях (2000 и 1000):

var backgroundheight = 2000;
var backgroundheight_two = 1000;

Во-вторых, к значениям высоты прибавить 1, чтобы рандомизировать исходное положение фона, и изменить переменные:

offset = Math.round(Math.floor(Math.random()* 2001));
offset2 = Math.round(Math.floor(Math.random()* 1001));

Также можно изменить скорость прокрутки фоновых изображении, но значение 100, используемое по умолчание, по моему оптимально.

И наконец, изменить идентификаторы DIV #container и #overlay - если будете использовать другие ID.

Скачать 1661Загрузок 193,93 Kb
Демо

Комментарии

  • Facebook
  • Вконтакте

Похожие статьи