Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.12.2012, 17:42
Новичок на форуме
Отправить личное сообщение для dream.reckless Посмотреть профиль Найти все сообщения от dream.reckless
 
Регистрация: 16.10.2012
Сообщений: 5

Смена изображений фона - нет повтора (jquery)
Доброго времени суток и конечно же всех с Новым Наступающим Годом!!

Подскажите пожалуйста, уже устал мучатся, столкнулся про следующей проблемой - есть скрипт, но после показа всех изображений (фон странички), он останавливается. Как этого избежать?



<img  src="" alt="background" id="bg" style="display:none" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
<script type="text/javascript" class="noprint">
    var aImages = new Array();
    var aURL = new Array();
    var aArtists = new Array();
    var iPrev = -1;
    var iRnd = -1;
    
    aImages[0] = "fone2.jpg";
    aImages[1] = "fone3.jpg";
    aImages[2] = "fone4.jpg";
    aImages[3] = "fone1.jpg";
        
    
 
 
    $(document).ready(function() {
 
        $("img#bg").load(function()
            {
                
                $("img#bg").fadeTo(2000,1);
                
                        
                
                setTimeout(function() 
                    {
                        $("#image_description").animate({right: '-=150'}, 1000);
                        $("img#bg").fadeOut(2000);
                        
                        
                        setTimeout(LoadImages,2500);
                    }
                    ,3000);
            }           
        )
    
        
        setTimeout(LoadImages,1000);
        
    });
 
    function LoadImage(iNr)
    {
    
        $("img#bg").attr("src", aImages[iNr]);
      
                            
    };
    
    function LoadImages()
    {
        
        /* Select a random image number and make sure this is not equal to the previous image */
        while(iPrev == iRnd)
        {
            iRnd = Math.floor(Math.random()*aImages.length);
 
        }
        
        /* Show the selected image */
        LoadImage(iRnd);
        
        iPrev = iRnd;
        
    };
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 26.12.2012, 18:07
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от dream.reckless
но после показа всех изображений (фон странички), он останавливается.
пробуйте заменить строку 63
LoadImage(iRnd);

на такую
LoadImage(iRnd+"?"+Math.random());
Ответить с цитированием
  #3 (permalink)  
Старый 26.12.2012, 18:25
Новичок на форуме
Отправить личное сообщение для dream.reckless Посмотреть профиль Найти все сообщения от dream.reckless
 
Регистрация: 16.10.2012
Сообщений: 5

Deff, попробывал, но к сожалению эффекта теперь нет вообще никакого..
Ответить с цитированием
  #4 (permalink)  
Старый 26.12.2012, 18:29
Новичок на форуме
Отправить личное сообщение для dream.reckless Посмотреть профиль Найти все сообщения от dream.reckless
 
Регистрация: 16.10.2012
Сообщений: 5

Проблему решил следующим способом. Всем спасибо. Правда, если у кого то есть желание, подскажите, почему вообще работает как то странно? То рывками, то пару раз одни и те же картинки меняются по парно...

Для более корректной работы требуется изменить ф-цию:
function LoadImage(iNr)
{
    $("img#bg").attr("src", aImages[iNr]);
    if ($("img#bg").prop('complete'))
    {
        setTimeout(LoadImages,2500);
    };
};
Ответить с цитированием
  #5 (permalink)  
Старый 26.12.2012, 18:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Сообщение от dream.reckless
то пару раз одни и те же картинки меняются по парно...
слабый алгоритм рандомизации -- сейчас он лишьбы не предыдущее -- поэтому достаточно 2 картинок
Ответить с цитированием
  #6 (permalink)  
Старый 26.12.2012, 18:37
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от dream.reckless
То рывками, то пару раз одни и те же картинки меняются по парно...
При непрерывном показе,нун делать рандомную ссылку несколько иначе,
Просто рандомно переставляя ссылки в массиве после каждого прогона всего массива(делая проверку, что первый элемент нового массива - не равен последнему исходного массива)
выбор и вставку ссылок делать уже не рандомно, а чисто следущий элемент массива

Последний раз редактировалось Deff, 26.12.2012 в 18:40. Причина: элемент
Ответить с цитированием
  #7 (permalink)  
Старый 26.12.2012, 18:38
Новичок на форуме
Отправить личное сообщение для dream.reckless Посмотреть профиль Найти все сообщения от dream.reckless
 
Регистрация: 16.10.2012
Сообщений: 5

Прошу прощение, что то я запутался.
То работает, то нет, то рывками, то одни и теже..
Может дело в delay?


Не подскажите, как исправить? Просто к сожалению, опять, я именно из тех кто не особо в javascript разбираться..
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jquery смена картинок mihalich_x jQuery 4 23.09.2011 10:58
смена изображений sweetj jQuery 4 07.12.2010 10:52
случайная смена фона сайта на jquery Netherlandman jQuery 8 25.08.2010 03:11
замена изображений в jquery при наведении zlokiz jQuery 0 05.08.2010 22:17
JQuery + Ajax = загрузка изображений jokerbot jQuery 0 06.12.2009 15:10