Некорректно работает код
var GaleryImgW=''; var GaleryImgH=''; var CenterW=''; var CenterH=''; var GaleryImgWH=''; var CenterWH=''; var newGaleryImgW=''; var newGaleryImgH=''; function f(){ $('.galery').removeAttr("style"); GaleryImgW=$('.galery').width(); GaleryImgH=$('.galery').height(); CenterW=$('#galerydiv').width(); CenterH=$('#galerydiv').height(); GaleryImgWH=GaleryImgH/GaleryImgW; CenterWH=CenterH/CenterW; newGaleryImgW=CenterH/GaleryImgWH; newGaleryImgH=CenterW*GaleryImgWH; if(GaleryImgW > CenterW){ //Размещаем картинку внуттри контента по максимальным возможностям if(GaleryImgH > CenterH){ if(CenterWH >= GaleryImgWH){ $('.galery').css({"width":CenterW}); $('.galery').css({"height":newGaleryImgH}); } else{ $('.galery').css({"height":CenterH}); $('.galery').css({"width":newGaleryImgW}); } } else{ $('.galery').css({"width":CenterW}); $('.galery').css({"height":newGaleryImgH}); } } else{ if(GaleryImgH > CenterH){ $('.galery').css({"height":CenterH}); $('.galery').css({"width":newGaleryImgW}); } } }; setInterval(function(){ var way="/templates/neon/images/galery/"+array[Math.floor(Math.random()*(21-2 +1))+2]; $('.galery').attr("src",way); f();}, 5500); <div id="galerydiv" style=" top: 69px; left: 88px;"> <img src="/templates/neon/images/galery/Anka_Lebedeva.jpg" class="galery"> </div> Вот такой код. Js измеряет размер оберточного блока galerydiv и в зависимости от размера этого блока выставляет размер картинки. Все хорошо, но...попытался задать setInterval и понеслось. При смене картинки, она приобретает размеры предыдущий картинки на несколько секунд, потом лишь приобретает нормальные размеры. В чем дело? Есть какая-то фишка в setInterval? |
Все! Проблема решилась!) Вот как
setInterval(function(){ var way="/templates/neon/images/galery/"+array[Math.floor(Math.random()*(21-2 +1))+2]; $('.galery').attr("src",way); $('.galery').load(function(){ f(); });}, 5500); Заставил скрипт дожидаться загрузки картинки |
Цитата:
|
Часовой пояс GMT +3, время: 22:59. |