Проблема с 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, время: 02:23. |