Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Допилить скрипт прокрутки страницы (https://javascript.ru/forum/css-html/37447-dopilit-skript-prokrutki-stranicy.html)

leny 19.04.2013 23:19

Допилить скрипт прокрутки страницы
 
Всем примет, уважаемые программисты!
Помогите пожалуйста закончить скрипт прокрутки страницы с прерыванием.
function myRandom (from, to)  {
  return Math.floor((Math.random() * (to - from + 1)) + from);
} // функция случайного числа

var Height = $("body").outerHeight();//высота страницы
var i=0;
(function() {
    if (i < Height){
    var j = 0;
            (function() {
              if (j < Height){
                window.scrollTo(0,j);
                j = j+10;
                var m = myRandom(1, 50);
                if(m==25){
                 	var i=0;
                       (function() {
                        if (i < 5){
                      	alert(i);
                        i++; // этот цикл мне и нужно довести до ума. Так-та он работает, но после его завершения скрипт перестает работать. прокрутка останавливается а должна идти дальше
                        setTimeout(arguments.callee, 1000); // задержка в цикле прокрутки 1 сек.
                      } 
                      })();
                }
                else{
                	setTimeout(arguments.callee, 7);
                }
              }
          	})();
      
    } 
})();

dmitriymar 20.04.2013 02:04

Абсолютно не читаемый код.
Честно я пытался вникнуть в логику и ничего не вышло
Сложность кода знаете что такое?
В этих нескольких строках я насчитал уровень сложности 6, хотя я могу ошибаться -может быть и выше. И это не считая отсутствия нормального именования переменных.
Вы сами сможете свой код понять через неделю, через месяц?

То что заметил условие:
Цитата:

Сообщение от leny
06 var i=0;

Цитата:

Сообщение от leny
08 if (i < Height)

затем делаете локальную с таким же именем и увеличиваете её
Цитата:

Сообщение от leny
16 var i=0;

Цитата:

Сообщение от leny
20 i++;

В упор не вижу увеличения глобальной -для чего тогда условие, если она статична ?
Цитата:

Сообщение от leny
8 if (i < Height){

Это всё лирика -код в топку однозначно

leny 20.04.2013 02:41

Цитата:

Сообщение от dmitriymar
Это всё лирика -код в топку однозначно

Позже заметил что код действительно не рабочий и много тут лишнего.
Вот более удачный вариант:
http://learn.javascript.ru/play/gS1bC

Там проблема с кодом:
var m=myRandom(0,50);
                      if(m>25 && m<45){
                          var i = 0;
                          (function() {
                          if (i < 3) {
                          i++;
                          alert(i)
                          setTimeout(arguments.callee, 1000);
                          } 
                          })();
                      }


Не знаю как его правильно записать чтобы после выполнения этого скрипта, остальная часть кода продолжала выполняться. Я не особо силен в javascript иначе бы не обращался. прошу сильно не пинать если найдете немыслимые ошибки и в этом примере.
Заранее спасибо за помощь!

dmitriymar 20.04.2013 14:20

Цитата:

Сообщение от leny
Не знаю как его правильно записать чтобы после выполнения этого скрипта, остальная часть кода продолжала выполняться. Я не особо силен в javascript иначе бы не обращался. прошу сильно не пинать если найдете немыслимые ошибки и в этом примере.
Заранее спасибо за помощь!

if (i < 3) {
    i++;
    alert(i)
    setTimeout(arguments.callee, 1000);
} 
else{
     //   код или вызов функции
}


По этому коду, тоже самое: в топку. степень сложности 5 на 8 строк.

leny 20.04.2013 15:56

Цитата:

Сообщение от dmitriymar
По этому коду, тоже самое: в топку. степень сложности 5 на 8 строк.

Ну не все ж такие умные как вы:)
Без обид, если что
___________________________
Спасибо что потратили время, я уже решил проблему не идеальным способом, но вообщем-то добился того чего хотел


Часовой пояс GMT +3, время: 19:16.