Страница 1 из 1

Скрипт по скролу не пашет в чем дело????

Добавлено: 22 янв 2007, 16:31
brut
<script language="JavaScript">
for(j=0;j<7000;j++)
{
//второй цикл для задержки а то очень быстро!
for(i=0;i<20000;i++)
{
};void(0);
window.scroll(0,j)
//i=0
};void(0);
</script>
(видимо стек переполняется???????????)
IE дает предупреждение что данный сценарий замедляет работу
как избавиться от этого сообщения????
Работа самого скрипта меня вообщем то устраивает!!!!!!!

Re: Скрипт по скролу не пашет в чем дело????

Добавлено: 28 янв 2007, 01:58
Oscar
brut,
для задержки я бы использовал стандартную функцию JS
setTimeout(function, miliseconds)

function будет скролить окошко на 1 (или сколько захочешь) пикселей,
с промежутком в x милисекунд (если в самой ф-ции в конце тоже написать setTimeout(func, ms)

если не ошибаюсь, то в этом случае браузер не будет матюкаться

Re: Скрипт по скролу не пашет в чем дело????

Добавлено: 28 янв 2007, 09:03
brut
Спасибо за подсказку!!!!!!!
уже разбираюсь думаю все получится
БИГ ФЕНКС!
ДАНКЕ ШЕЙН!!!!!!
СПАСИБО!!!!

Re: Скрипт по скролу не пашет в чем дело????

Добавлено: 29 янв 2007, 16:55
brut
<script language="JavaScript">
i=0.00
function scr()
{
for(j=0;j<30000;j++)
{
i=i+0.015
window.scroll(0,i)
}};void(0);
}
setTimeout("scr()",1000)
</script>
Переписал вот так но...... подводный камень!!!!!
вначале все нормально но к середине скорость падает а к концу сраница еле ползет
Что то я не догоняю а что именно не пойму!!!!
Благодарю за помощь

Re: Скрипт по скролу не пашет в чем дело????

Добавлено: 29 янв 2007, 17:04
Oscar
[syntax="JavaScript"]
<script>
function scr() {
window.scroll(0, 1)
setTimeout("scr()", 1000);
}
setTimeout("scr()", 1000);
<script>
[/syntax]

примерно так, не проверял

суть в том, что циклы не нужны вообще,
а ф-цию надо вызывать саму из себя с заданым промежутком

Re: Скрипт по скролу не пашет в чем дело????

Добавлено: 29 янв 2007, 21:11
brut
Класс виден из далека!!!!!
Спасибо незнакомый камрад
и все же без циклов тут никак...
по другому все работает на один шаг и все...
последний вариант выглядит так
<script language="JavaScript">
i=0
j=0.00
function scr() {
for (i=0;i<90000;i++)
{
j=j+0.11
// ифы гасят скоростя отделение ступеней ракеты
// а последний иф наооборот газ и вывод на орбиту
if (j<100)
j=j-0.103
else
if (j<300)
j=j-0.09
else
if (j<500)
j=j-0.075
else
if (j<2500)
j=j-0.05
else
if (j>7500)
j=j+0.01
window.scroll(0, j)
}
//window.scroll(0, i)
//setTimeout("scr()", 1000);
}
setTimeout("scr()", 10000);

</script>
и все бы хорошо да только кол-во итераций в цикле
зависит от размера страницы может можно как нибудь перейти
на цикл while да так чтоб указать от начала страницы и до конца
и наоборот с конца в начало???

Re: Скрипт по скролу не пашет в чем дело????

Добавлено: 03 фев 2007, 10:02
brut
OSKAR Я не прав!!!!!!!
Извиняюсь вышеописанный тобой метод работает прекрасно!!!!!!!!!!
Браво Вы ГОЛОВА!!!!!!!!!!!!

я тут вычитал что метод scroll(x,y) объекта window. устарел и сохранен только
для совместимости сейчас рекомендовано использовать scrollBy(x,y) вставил и жизнь прекрасна!!!!!! Но это детали мне б не за что не додуматься было вызывать Ф-ЦИЮ из САМОЙ СЕБЯ БЕЗ ЦИКЛА!!!!! ВЫ ПРОСТО ГЕНИЙ!!!!!!
С П А С И Б О!!!!!!!!

Re: Скрипт по скролу не пашет в чем дело????

Добавлено: 03 фев 2007, 18:20
__Yuri__
brut писал(а): мне б не за что не додуматься было вызывать Ф-ЦИЮ из САМОЙ СЕБЯ БЕЗ ЦИКЛА!!!!! ВЫ ПРОСТО ГЕНИЙ!!!!!!
Это называется рекурсия, до этого не надо додумываться, до этого мнооого лет назад додумались. Также как и использовать прерывания таймера для задержек, а не циклы, которые хавают процессорное время, вместо того что бы дать другим программам им попользоваться.

Re: Скрипт по скролу не пашет в чем дело????

Добавлено: 03 фев 2007, 20:27
brut
Я сел за компьютер после нынешнего рождества в первый раз
поэтому может вам и кажется странным но то что выдумано много лет назад для меня НОВОСТИ