Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 25.04.2009, 20:13
Аватар для galileopro
Интересующийся
Отправить личное сообщение для galileopro Посмотреть профиль Найти все сообщения от galileopro
 
Регистрация: 25.04.2009
Сообщений: 15

Мопогите разобраться. Вот код и ссылка на исходник слайдшоу, где картинки меняют друг друга постепенно затухая(предыдущая затухает, последующая появляется). Но постепенно затухание необоснованно ускоряется и все портится((Картинки меняются слишком быстро и затухание вообще не заметно. Я уже ставил setTimeout на 1000 мс перед каждой перерисовкой, но все равно это лишь вопрос времени. Постепенно оно ускоряется до неимоверности...
Вот код:
<script>
var slide = new Array;
var pictureName = new Array("scrin1.jpg", "scrin2.jpg", "scrin3.jpg", "scrin4.jpg","scrin5.jpg", "img3.jpg");
for (var i = 0; i < pictureName.length; i++) {
slide[i] = new Image();
slide[i].src = pictureName[i];
}
var l=100;
var k=0;
var i=0;

function next(){
l=l-1;
document.getElementById("before").width=400;
document.getElementById("before").height=300;
document.getElementById("before_div").style.filter ="alpha(opacity="+l+")";
k++;
document.getElementById("after").width=400;
document.getElementById("after").height=300;
document.getElementById("after_div").style.filter ="alpha(opacity="+k+")";
setTimeout("next()",50);

if(k==100)return;
}

function Slaid(){
if(i<=4){
l=100; k=0;
document.getElementById("before").src=pictureName[i];
i++
document.getElementById("after").src=pictureName[i];
next();
}
if(i==5){
l=100; k=0;
document.getElementById("before").src=pictureName[i];
i=0;
document.getElementById("after").src=pictureName[i];
next();
}
setTimeout('Slaid()',5000);
}
</script>
<style>
.pic { position: absolute; top: 40px; left: 10px }
</style>
<body onload="setTimeout('Slaid()',1000)">
<body bgcolor="deepskyblue" text="blue" link="yellow" vlink="gold">
<p align=center>Баннер "Затухание"</p>
<div id="before_div" class="pic"><img id="before" src="scrin1.jpg" width=400 height=300></div>
<div id="after_div" class="pic"><img id="after" src="scrin2.jpg" width=400 height=300></div>
<br><br><br><br><br><br><br><br><br><br><br><br><b r><br><br><br>
<p><a href="Baners.html">Назад</a></p>
</body>
Вот ссылка на работающее приложение:
http://letitbit.net/download/81eb65b...hanie.rar.html

http://letitbit.net/download/81eb65b...hanie.rar.html
Ответить с цитированием
  #12 (permalink)  
Старый 26.04.2009, 03:09
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

давай для начала воспользуемся тэгами для орформления кода (html в твоем случае, есть иконка на панели инструментов) + добавь отступы, а то ничего не понятно
Ответить с цитированием
  #13 (permalink)  
Старый 26.04.2009, 09:54
Аватар для galileopro
Интересующийся
Отправить личное сообщение для galileopro Посмотреть профиль Найти все сообщения от galileopro
 
Регистрация: 25.04.2009
Сообщений: 15

<doctype html Public "_//w3c// DTD html 4.0 Frameset//En"
"_The_latest_version_/frameset.dta">
<html>
<head>
<title>Затухание слайдов</title>
<script>
var slide = new Array;
var pictureName = new Array("scrin1.jpg", "scrin2.jpg", "scrin3.jpg", "scrin4.jpg","scrin5.jpg", "img3.jpg");
for (var i = 0; i < pictureName.length; i++) {
slide[i] = new Image();
slide[i].src = pictureName[i];
}
var l=100;
var k=0;
var i=0;

function next(){
l=l-1;
document.getElementById("before").width=400;
document.getElementById("before").height=300;
document.getElementById("before_div").style.filter ="alpha(opacity="+l+")";
k++;
document.getElementById("after").width=400;
document.getElementById("after").height=300;
document.getElementById("after_div").style.filter ="alpha(opacity="+k+")";
setTimeout("next()",50);
if(k==100)return;
}

function Slaid(){
if(i<=4){
l=100; k=0;
document.getElementById("before").src=pictureName[i];
i++
document.getElementById("after").src=pictureName[i];
next();
}
if(i==5){
l=100; k=0;
document.getElementById("before").src=pictureName[i];
i=0;
document.getElementById("after").src=pictureName[i];
next();
}
setTimeout('Slaid()',5000);
}
</script>

<style>
.pic { position: absolute; top: 40px; left: 10px }
</style>

<body onload="setTimeout('Slaid()',1000)">

<div id="before_div" class="pic"><img id="before" src="scrin1.jpg" width=400 height=300></div>
<div id="after_div" class="pic"><img id="after" src="scrin2.jpg" width=400 height=300></div>
</body>
</html>
Ответить с цитированием
  #14 (permalink)  
Старый 26.04.2009, 10:00
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Интересно, найдется, кто ни будь, у кого хватит терпения объяснить, как пользоваться тегами.
Ответить с цитированием
  #15 (permalink)  
Старый 26.04.2009, 10:08
Аватар для galileopro
Интересующийся
Отправить личное сообщение для galileopro Посмотреть профиль Найти все сообщения от galileopro
 
Регистрация: 25.04.2009
Сообщений: 15

имешь в виду использовать теги
? А отступы я ставил везде, но они почему-ть не отобразились
Ответить с цитированием
  #16 (permalink)  
Старый 26.04.2009, 10:30
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

О, я вижу смайл. Прогресс.
Ответить с цитированием
  #17 (permalink)  
Старый 26.04.2009, 10:32
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

:WALL:
galileopro,
иелись в виду BB-теги при написании сообщений.
когда ты пишеш сообщение, то у тебя рядом есть несколько кнопочек.
если ты выделиш HTML-код в своем сообшении, и нажмеш кнопку с угловыми скобками, то получиш:
<html>
    </html>

а если со свертком, то получиш
alert('Java Script');
Ответить с цитированием
  #18 (permalink)  
Старый 26.04.2009, 10:54
Аватар для galileopro
Интересующийся
Отправить личное сообщение для galileopro Посмотреть профиль Найти все сообщения от galileopro
 
Регистрация: 25.04.2009
Сообщений: 15

Вот упрощенный вариант кода с той же проблемой. Здесь картинка "scrin1.jpg" меняется на "scrin2.jpg" причем первая постепенно затухает, а вторая постепенно появляется, но постепенно выполнение скрипта самопроизвольно ускоряется и затухание становится практически незаметым. Если кто-нибудь знает как исправить - напишите.
<doctype html Public "_//w3c// DTD html 4.0 Frameset//En"
"_The_latest_version_/frameset.dta">
<html>
<head>
<title>Затухание слайдов</title>
<script>
var l=100;
var k=0; 
function next(){
l=l-1;
document.getElementById("before").width=400;
document.getElementById("before").height=300;
document.getElementById("before_div").style.filter ="alpha(opacity="+l+")";
k++;
document.getElementById("after").width=400;
document.getElementById("after").height=300;
document.getElementById("after_div").style.filter ="alpha(opacity="+k+")";
setTimeout("next()",50);
if(k==100)return;
}

function Slaid(){
l=100; 
k=0; 
document.getElementById("before").src="scrin1.jpg";
document.getElementById("after").src="scrin2.jpg";
setTimeout('next()',500);
setTimeout('Slaid()',5000);
}
</script>

<style>
.pic { position: absolute; top: 40px; left: 10px }
</style>

<body onload="setTimeout('Slaid()',1000)"> 
<div id="after_div" class="pic"><img id="after" src="scrin1.jpg" width=400 height=300></div>
<div id="before_div" class="pic"><img id="before" src="scrin2.jpg" width=400 height=300></div>
</body>
</html>
Ответить с цитированием
  #19 (permalink)  
Старый 26.04.2009, 10:58
Аватар для galileopro
Интересующийся
Отправить личное сообщение для galileopro Посмотреть профиль Найти все сообщения от galileopro
 
Регистрация: 25.04.2009
Сообщений: 15

Спасибо Gvozd. Ну вроде-бы выделился скрипт...
Ответить с цитированием
  #20 (permalink)  
Старый 26.04.2009, 18:15
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

1) лучше не использовать глобальных переменных:
function next(){
...
document.getElementById("before_div").style.filter ="alpha(opacity="+arguments.callee.i+")";
...
function Slaid(){
...
next.i = 0;
setTimeout('next()',500);
...

2) фильтры есть только в ie
3)
if(k==100)return;

то же самое, что
if(k==100);

то же самое что
// ;)

4)
Цитата:
Вот ссылка на работающее приложение
я имел в виду не ссылку на файлообменник, а на страницу, которая не работает, чтобы прямо в inet'е можно было посмотреть... но уже не нужно

Последний раз редактировалось x-yuri, 27.04.2009 в 17:14.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь в JavaScript михаил Общие вопросы Javascript 26 30.10.2013 12:07
jQuery Ajax Rater Plugin и массив POST - Нужна помощь TROODON jQuery 12 30.12.2009 22:44
Кроссдоменный GET запрос. Нужна помощь! notxcain AJAX и COMET 4 07.12.2008 20:55
Нужна помощь Дима1234 Общие вопросы Javascript 2 16.10.2008 12:53
Срочно нужна помощь Гость Общие вопросы Javascript 2 02.09.2008 14:13