Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 02.08.2010, 17:25
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

и в результате сложно понять, что там происходит, не понятно, зачем используются глобальные переменные
<script type="text/javascript">
function start( wrapper, bar, start, end, speed ){
    var cur = start;
    runPeriodically(function(){
        $(wrapper).title = cur+'/'+end;
        $(bar).style.width = cur/end*100+'%';
        if( cur == end )
            return false;

        cur += speed;
        if( cur > end )
            cur = end;
    }, 100)
}

function runPeriodically( f, interval ){ 
    var i = 0; 
    var id = setInterval(function(){ 
        var r = f( i );
        if( r == false )
            clearInterval( id ); 
        i++; 
    }, interval); 
}

function $( el ){
    return   typeof el == 'string' ? document.getElementById(el) : el;
}
</script>
<body onLoad="start('myhp2_full', 'myhp2', 11, 37, 3);">
<div id="myhp2_full"  style="width:500px;height:4px;border:2px solid black;">
<div id="myhp2" style="width:50%;height:4px;background:green;"></div>
</div>
</body>

а еще лучше так (причем css/javascript лучше вынести в отдельные файлы)
<style type="text/css">
.progress-bar {
    width: 500px;
    height: 4px;
    border: 2px solid black;
}
.progress-bar-bar {
    width: 50%;
    height: 4px;
    background: green;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/mootools/1.2.4/mootools-yui-compressed.js"></script>
<script type="text/javascript">
Function.implement({
    runPeriodically: function( interval ){ 
        var i = 0;
        var id = function(){
            var r = this( i );
            if( r == false )
                $clear( id ); 
            i++; 
        }.periodical(interval, this);
    }
});
</script>
<script type="text/javascript">
var ProgressBar = new Class({
    initialize: function( el ){
        this._el = $(el);
        this._el.addClass('progress-bar');
        this._bar = new Element('div', {'class': 'progress-bar-bar'});
        this._bar.inject(this._el);
    },

    start: function( start, end, speed ){
        var cur = start;
        f.bind(this).runPeriodically(300);

        function f(){
            this._el.title = cur+'/'+end;
            this._bar.style.width = cur/end*100+'%';
            if( cur == end )
                return false;

            cur += speed;
            if( cur > end )
                cur = end;
        }
    }
});
</script>
<body>
<div id="progress-bar-1"></div>
<script type="text/javascript">new ProgressBar('progress-bar-1').start(11, 37, 3);</script>
<div id="progress-bar-2"></div>
<script type="text/javascript">new ProgressBar('progress-bar-2').start(1, 37, 1);</script>
</body>

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

Сообщение от morg4n
пс. как ты сделал возможность запустить твой код прямо здесь
http://javascript.ru/formatting
Ответить с цитированием
  #13 (permalink)  
Старый 02.08.2010, 21:21
Аспирант
Отправить личное сообщение для morg4n Посмотреть профиль Найти все сообщения от morg4n
 
Регистрация: 02.08.2010
Сообщений: 46

дя, я уже прочитал про html run.
спасибо, просто мой уровень весьма низок и я стараюсь писать как умею)
В чем смысл вынесение отдельной функции runPeriodically?
Чтобы меньше с setInterval возьни было?
Ответить с цитированием
  #14 (permalink)  
Старый 02.08.2010, 21:31
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от morg4n
В чем смысл вынесение отдельной функции runPeriodically?
чтобы было видно, что делает функция, а не как она это делает
Ответить с цитированием
Ответ



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

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