Проблема с animate()
var array=new Array();// создаем новый массив, в который помещаем имена картинок в папке "galery"
<?php $dir="../images/galery"; $files=scandir($dir); echo "var count=".count($files).";"; echo "var count1=".count($files)."-1;"; for($i=2;$i < count($files); $i++){ echo "array[".$i."]='".$files[$i]."';"; } ?>
function panorama(){
$('.panorama').removeAttr("style");
$('.panorama').load(function(){
var ImgW=$(this).width(); //Размеры картинки галереи и соотношение ее сторон
var ImgH=$(this).height();
var CenterW=$('#center').width();//размеры контента
var CenterH=$('#center').height();
var ImgWH=ImgH/ImgW;
var CenterWH=CenterH/CenterW;
var newImgW=CenterH/ImgWH;
var newImgH=CenterW*ImgWH;
if(ImgW > CenterW){ //Размещаем картинку внуттри контента по максимальным возможностям
if(ImgH > CenterH){
if(CenterWH >=ImgWH){
ImgW = CenterW;
ImgH = newImgH;
}
else{
ImgH = CenterH;
ImgW = newImgW;
}
}
else{
ImgW = CenterW;
ImgH = newImgH;
}
}
else{
if(ImgH > CenterH){
ImgH = CenterH;
ImgW = newImgW;
}
}
$('.panorama').animate({'width':ImgW, 'height':ImgH},15000);
});
};
panorama();
var time2=setInterval(function(){
$('.panorama').stop();
var way="/templates/neon/images/galery/"+array[Math.floor(Math.random() * (count1 - 2 + 1)) + 2];
$('.panorama').attr('src', way);
panorama();
},16000);
Вот такой код. Имеется некий блок center, в него изначально помещается некая картинка(для блока применяется overflow: hidden). Размеры картинки заранее неизвестны, так же как и оберточного блока center(задается в зависимости от разрешения экрана). Я выясняю размеры картинки и блока, нахожу самые приемлемые ширину и высоту для картинки(чтобы она по максимуму влезла в блок и сохранила соотношение). А дальше простая анимация, которая, собственно, и сужает размеры картинки до размеров блока( функция panorama()). Вызываю panorama() - все чудесно. Но мне надо, чтобы сменились картинки - вещаю Interval.Первые одна-две картинки(после смены) проходят нормально:анимация работает чудесно, но последующие... Анимация не работает. Выполняется сужение в миг, без эффекта анимации. Причем начиная с 3-й(со смены) картинки ширина и высота задаются такие, которые были заданы второй(словно выдирает из кэша значения). Анимация вроде и продолжается - изменение параметров идет, но величина настолько малая, что визуально не заметно. В общем, сос!:help: P.S.Консоль js бывает выдает такое: Resource interpreted as Script but transferred with MIME type text/html Ругается на jquery библиотеку и на сам js. Но это вроде как несмертельный загон хрома. |
literator,
вам бы строки 42 - 45 поместить в animate строка 34 и выкинуть setInterval |
Цитата:
|
| Часовой пояс GMT +3, время: 22:34. |