Создание JQuery-слайд-шоу фонового изображения - PullRequest
0 голосов
/ 10 февраля 2011

У меня есть элемент, который служит баннером на моем сайте. Этот баннер содержит HTML-контент, но использует изображение высокого разрешения в качестве фонового изображения. Из-за этого я загружаю фоновое изображение последним и постепенно добавляю его после загрузки Мой код выглядит так:

<table id="bannerTable" border="0" cellpadding="0" cellspacing="0" style="width:640px; height:480px;">
  <tr><td style="padding-top:20px; padding-left:300px;">
    <div>[Some Text]</div>
  </td></tr>
  <tr><td style="vertical-align:bottom; padding-bottom:20px;">
    <div>[Site Menu Goes Here]</div>
  </td></tr>
</table>

  <script type="text/javascript">
    $(document).ready(function () {
      $("#bannerTable").loadBGImage("/picture1.png");
    });

    $.fn.loadBGImage = function (url) {
      var t = this;
      $('<img />')
        .attr('src', url)
        .load(function () {
          t.each(function () {
            $(this).hide();
            $(this).css('backgroundImage', 'url(' + url + ')');
            $(this).fadeIn();
          });
        });
      return this;
    }
  </script>

Даже с этим мой сайт чувствует себя статичным. Из-за этого я хочу просмотреть несколько изображений с высоким разрешением во время выполнения. Эти изображения с высоким разрешением будут использоваться в баннерной таблице как фоновое изображение. Я хочу, чтобы они появлялись и исчезали по мере их зацикливания.

Как мне это сделать с помощью jQuery?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2011

посмотрите демонстрационный источник полного рабочего кода

0 голосов
/ 10 февраля 2011

В основном используйте setInterval для вызова loadBGImage, скажем каждые 60 секунд.

например что-то вроде

var interval = 0;
var intervalTimer = setInterval(
    function(){
        if (++interval > 10) {interval = 1}
        $("#bannerTable").loadBGImage("/picture" + interval + ".png");
    }
    ,
    60000
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...