Некорректно работает код
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, время: 19:41. |