Ответы пользователя по тегу JavaScript
  • Как корректно обрабатывать события метода animate в Web Animation API?

    RusPOPsy
    @RusPOPsy
    Говорила мама, учи математику ...
    Порядок срабатывания эвентов не гарантирует, что порядок запуска анимации будет такой же.
    Не знаю как понятнее объяснить ...

    Но оставлю тут исправный вариант )
    const itemRef = document.querySelector('.item')
    let move = (e) => {
        const x = e.offsetX
        itemRef.animate([{
            transform: `scale(1.6) rotate(${x}deg)`,
        }], {duration: 1000, fill: 'forwards'})
    }
    
    itemRef.addEventListener('mouseleave', (e) => {
        itemRef.removeEventListener('mousemove', move)
        itemRef.animate([{
            transform: 'none',
        }], {duration: 1000, fill: 'forwards'})
    })
    
    itemRef.addEventListener('mouseenter', (e) => {
        itemRef.addEventListener('mousemove', move)
    })


    P/S
    что там с этим overAnimation.cancel() - не знаю ... оно точно надо?
    анимация отмененная после завершения что то меняет?
    Ответ написан
  • Ссылка через код php?

    RusPOPsy
    @RusPOPsy
    Говорила мама, учи математику ...
    function getItem($title, $url, $img) {
      return '<div class="item">
              
    <div class="blogodel">
            <a href="'.trim($url).'" onClick="_gaq.push([\'_trackEvent\', \'Test1.Click\', \'Click\', \'Test1\']);">
              <img src="'.trim($img).'" alt=""><div class="desc"><strong>&#9733; &#9733; &#9733; &#9733; &#9734;</strong> Played: 95741236 times</div>
              '.trim($title).'
            </a>
          </div></div>';
    }
    Ответ написан
    7 комментариев
  • Как работают таймеры в играх?

    RusPOPsy
    @RusPOPsy
    Говорила мама, учи математику ...
    Например таймер до конца
    допустим до конца чего либо осталось 180 секунд
    Демка

    (function($){
        // Количество секунд в каждом временном отрезке
        var days	= 24*60*60,
        hours	= 60*60,
        minutes	= 60;
        
        $.fn.timer = function(callback){
            callback = callback ? callback : function(){}
            return new $.ctimer(this, callback);
        }
        $.ctimer = function(element, callback) {
            callback = callback || function(){}
            var secs = parseInt(element.html());
            function tick(){
                // Осталось дней
                var sec = secs;
                var d = Math.floor(sec / days);
                sec -= d*days;
    			
                // Осталось часов
                var h = Math.floor(sec / hours);
                sec -= h*hours;
    			
                // Осталось минут
                var m = Math.floor(sec / minutes);
                sec -= m*minutes;
    			
                // Осталось секунд
                var s = sec;
                h = (h+"").length<2 ? "0"+h : h;
                m = (m+"").length<2 ? "0"+m : m;
                s = (s+"").length<2 ? "0"+s : s;
                if(secs==0){
                    element.html(null);
                    callback();
                    return false;
                }
                secs--;
                element.html(d+" дн. "+h+":"+m+":"+s);
                setTimeout(tick, 1000);
            }
            tick();
        }
    })(jQuery);
    Ответ написан
    3 комментария
  • Как возвратить значение из функции класса в javascript?

    RusPOPsy
    @RusPOPsy
    Говорила мама, учи математику ...
    Ну так само собой, вы не сможете так вернуть.
    Событие success происходит гораздо позже чем ваш return (после того как сервер ответит)
    Return после Ajax сделать не получится, по крайней мере без костылей.
    Можно делать так:
    comlib.GetMessages = function(callback)
    {
       $.ajax
       ({
           url: "get_messages.php",
           type: 'get',
           success: function( data )
           {
                callback(data);
           }
       });
    }
    
    comlib.GetMessages(function(data){
       console.info(data); // выведет ответ Ajax
    })
    Ответ написан