SORU
4 ŞUBAT 2012, CUMARTESİ


() jQuery kaydırma kullanıcı durur kaydırma sırasında tespit

Bu.. tamam

$(window).scroll(function()
{
    $('.slides_layover').removeClass('showing_layover');
    $('#slides_effect').show();
});

Birisi anladığım kadarıyla kaydırma olduğunda söyleyebilirim. O birisi durduğunda yakalamak için nasıl anlamaya çalışıyorum. Yukarıdaki örnekte kaydırma oluştuğu sırada, bir dizi sınıf çıkarıyorum görebilirsiniz. Ancak bu sınıf, kullanıcı durduğunda koymak istiyorum.

Bu bir gecikme olması niyetli olduğum için neden sayfa üzerinde çalışmak için çalışıyorum özel bir etki vermek için kaydırma yaparken gösteriyor. Ama bir sınıf ben bazı doğa için bir şeffaflık etkisi olarak bu yönde çakışıyor kaydırma yaparken kaldırmak için çalışıyorum.

CEVAP
30 Aralık 2012, Pazar


$(window).scroll(function() {
    clearTimeout($.data(this, 'scrollTimer'));
    $.data(this, 'scrollTimer', setTimeout(function() {
        // do something
        console.log("Haven't scrolled in 250ms!");
    }, 250));
});

Güncelleme

Bir yazdımuzantısıbir WordPress kullanmak geliştirmek için varsayılan on-olay işleyicisi. Seçili öğeleri bir veya daha fazla olay için bir olay işleyicisi işlevini ekler ve eğer bu olay, belirli bir zaman aralığı için tetiklendi değil işleyicisi işlevini çağırır. Bu resize olayı gibi sadece bir gecikmeden sonra geri ateş için kullanışlı, ya da böyle.

Önemli güncelleştirmeler için github-repo kontrol edin.

https://github.com/yckart/jquery.unevent.js

;(function ($) {
    var on = $.fn.on, timer;
    $.fn.on = function () {
        var args = Array.apply(null, arguments);
        var last = args[args.length - 1];

        if (isNaN(last) || (last === 1 && args.pop())) return on.apply(this, args);

        var delay = args.pop();
        var fn = args.pop();

        args.push(function () {
            var self = this, params = arguments;
            clearTimeout(timer);
            timer = setTimeout(function () {
                fn.apply(self, params);
            }, delay);
        });

        return on.apply(this, args);
    };
}(this.jQuery || this.Zepto));

Bu diğerleri gibi kullanın on bind-olay işleyicisi, bir son olarak ekstra bir parametre iletebilirsiniz dışında:

$(window).on('scroll', function(e) {
    console.log(e.type   '-event was 250ms not triggered');
}, 250);

http://yckart.github.com/jquery.unevent.js/

(bu demo kullanır resize yerine kimin umurunda scroll ama?!)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CNNMoney

    CNNMoney

    16 Kasım 2006
  • Eddie Bravo

    Eddie Bravo

    17 EKİM 2006
  • The Scary Snowman

    The Scary Sn

    1 ŞUBAT 2011