jQuery স্ক্রোল () সনাক্ত করে যখন ব্যবহারকারী স্ক্রোলিং বন্ধ করে


109

ঠিক আছে এর সাথে ..

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

আমি যখন বুঝতে পারি তখন কেউ যখন স্ক্রোল করছে তখন আমি বলতে পারি। সুতরাং এটির সাহায্যে আমি চেষ্টা করার চেষ্টা করছি যে কেউ যখন থামবে তখন কীভাবে ধরা হবে। উপরের উদাহরণ থেকে আপনি দেখতে পাচ্ছেন যে আমি স্ক্রোলিংয়ের সময় কয়েকটি উপাদান থেকে একটি শ্রেণি অপসারণ করছি। তবে, ব্যবহারকারী যখন স্ক্রোলিং বন্ধ করে দেয় তখন আমি সেই ক্লাসটি আবার চালু করতে চাই।

এর কারণ হ'ল পৃষ্ঠাটি যখন আমি কাজ করার চেষ্টা করছি তখন একটি বিশেষ প্রভাব দেওয়ার জন্য পৃষ্ঠাটি স্ক্রোল করছে এমন সময় আমি একটি লেওভার শো করাতে আগ্রহী। কিন্তু সেই প্রভাবটির সাথে সংঘাতগুলি স্ক্রোল করার সময় আমি যে শ্রেণিটি মুছে ফেলার চেষ্টা করছি তা এটি কোনও প্রকৃতির স্বচ্ছতার প্রভাব হিসাবে।



আশ্চর্যজনক, হুবহু ডুপ্লিকেট নয়, তবে আমি যা খুঁজছিলাম তার গলিটি নিশ্চিতভাবেই আপ করুন এবং শেষ পর্যন্ত আমার সমস্যা সমাধানে আমাকে সহায়তা করলেন। ধন্যবাদ.
খ্রিস্ট

উত্তর:


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

হালনাগাদ

আমি jQuery এর ডিফল্ট -আগস্ট-হ্যান্ডলার বাড়াতে একটি এক্সটেনশন লিখেছি on। এটি নির্বাচিত উপাদানগুলিতে এক বা একাধিক ইভেন্টের জন্য ইভেন্ট হ্যান্ডলার ফাংশন সংযুক্ত করে এবং ইভেন্টটি যদি কোনও প্রদত্ত বিরতির জন্য ইভেন্টটি ট্রিগার না করা হয় তবে হ্যান্ডলারের ফাংশনটিকে কল করে। আপনি যদি পুনরায় আকার পরিবর্তন ইভেন্ট বা এর মতো কোনও বিলম্বের পরে কেবল কলব্যাক চালিত করতে চান তবে এটি কার্যকর।

আপডেটগুলির জন্য গিথুব-রেপো পরীক্ষা করা গুরুত্বপূর্ণ!

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));

এটিকে অন্য যে কোনও onবা bindআগস্ট হ্যান্ডলারের মতো ব্যবহার করুন , আপনি শেষ হিসাবে অতিরিক্ত প্যারামিটারটি পাস করতে পারেন তা বাদ দিয়ে:

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

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

( resizeপরিবর্তে এই ডেমোটি ব্যবহার করে scroll, তবে কে যত্ন করে ?!)


এটি এখনও 100% সঠিক নয়: কখনও কখনও ব্যবহারকারী 250
এমএসের

এই কোডটি দুর্দান্ত কাজ করে তবে এটি jquery ui এর স্বতঃসম্পূর্ণ উইজেটটিকে পুরোপুরি ভেঙে দিয়েছে।
kkazakov

@ আরমানবিমাটোভ এর পরে এটি বিবেচনা করা হবে যে ব্যবহারকারী স্ক্রোলিং রাখে, যা ভাল লাগছে, না?
Godblessstrawberry

এই সময়সীমাটি কেবল তখনই শুরু হয় যখন স্ক্রোল ইভেন্টগুলি বন্ধ হয় এবং যখন ব্যবহারকারী স্ক্রোলিং বন্ধ করে না। ব্যবহারকারী মাউস থেকে তাদের আঙুলটি তুলতে পারে এবং তাদের স্ক্রোলিংয়ের গতির উপর নির্ভর করে স্ক্রোলিং কয়েক সেকেন্ডের জন্য চালিয়ে যেতে পারে। যখন ব্যবহারকারী স্ক্রোলিং বন্ধ করে দেয় তখন এই সমাধান আপনাকে কোনও ইঙ্গিত দেয় না।
অ্যান্ড্রয়েডদেভ

1
@ আবযারাক এই বিমূর্ত সাহায্যকারী নিখুঁত নয়, কোনও অবস্থাতেই! আমি সম্প্রতি গিথুব-রেপো আপডেট করিনি, কারণগুলির জন্য - এটি একটি ভয়ানক ধারণা ছিল। এর পরিবর্তে কেবল একটি "থ্রোটল" বা "ডিবাউন" মোড়ক ফাংশন ব্যবহার করুন। আমার অন্য কোথাও এটিও লক্ষ করা উচিত! :)
ইয়াকার্ট

49

JQuery থ্রোটল / ডিবাউন ব্যবহার করে

এই জাতীয় সমস্যার জন্য jQuery ডিবাউন একটি দুর্দান্ত। jsFidlle

$(window).scroll($.debounce( 250, true, function(){
    $('#scrollMsg').html('SCROLLING!');
}));
$(window).scroll($.debounce( 250, function(){
    $('#scrollMsg').html('DONE!');
}));

দ্বিতীয় প্যারামিটারটি "at_begin" পতাকা। এখানে আমি দেখিয়েছি কীভাবে "স্ক্রোল শুরু" এবং "স্ক্রোল ফিনিস" এ উভয় কোড কার্যকর করা যায়।

লোডাশ ব্যবহার করা হচ্ছে

ব্যারি পি দ্বারা প্রস্তাবিত, জেএসফিডাল , আন্ডারস্কোর বা লোড্যাশের একটি ডিবাউন রয়েছে যার প্রত্যেকটি কিছুটা আলাদা আলাদা এপিস রয়েছে।

$(window).scroll(_.debounce(function(){
    $('#scrollMsg').html('SCROLLING!');
}, 150, { 'leading': true, 'trailing': false }));

$(window).scroll(_.debounce(function(){
    $('#scrollMsg').html('STOPPED!');
}, 150));

একইসাথে কোনও সাধারণ স্ক্রোল ফাংশনটি ব্যবহার করা কি সম্ভব? $ (উইন্ডো) .স্ক্রোল (ফাংশন () {...});
ড্যানিয়েল ভোগেলনেস্ট

অবশ্যই, jQuery আপনার পছন্দ মত একটি ইভেন্টে যতগুলি হ্যান্ডলারকে আবদ্ধ করবে।
সিনেটেটা

এই @ ব্যারিপি জেসফিডেল আপডেট করার জন্য ধন্যবাদ লো-ড্যাশও সরবরাহ করে যাতে আপনি বাহ্যিক লিঙ্কটি এড়াতে পারবেন jsfiddle.net/qjggnyhf
সিনেটেটা

এফওয়াইআই, আমার এমন সমস্যা ছিল যেখানে দ্রুত স্ক্রোলগুলি আর ফিরে না আসছিল। দেখে মনে হয়েছিল যে আপনাকে "স্টপ্পেড" ডিবাউনে কয়েক মিলিসেকেন্ড যুক্ত করা দরকার, অন্যথায় এটি এমন একটি রেসের শর্ত তৈরি করে যেখানে কিছুটা সময় শুরু হওয়ার আগে স্টপ্পড ট্রিগার হয়ে যায় এবং আপনি আইটেমটি আটকে দিয়ে দেখেন যে আপনি এখনও স্ক্রল করছেন। আমি যথাক্রমে আমার 150 এবং 160 তৈরি করেছি এবং দেখে মনে হচ্ছে এটি কৌশলটি করা হয়েছে।
কোডচিম্প

ধন্যবাদ @ কোডচিম্প যে এটি পরিষ্কার, কিন্তু আমি 16 টির মধ্যে 15 বার ঠিক করে প্রান্তের মামলাগুলি পরিচালনা করার বিষয়ে উদ্বিগ্ন ছিলাম;) ভিতরে ভিতরে সমস্ত যুক্তি সহ কোনও একক হ্যান্ডলার সবচেয়ে নিরাপদ হতে পারে। leadingএবং trailingনিজেকে পরীক্ষা করুন , তারপরে নিশ্চিত হন যে কোনও বিভ্রান্তি হতে পারে না।
সিনেটেটা

9

রব ডাব্লু সিগাইজড আমি স্ট্যাকের উপরে এখানে অন্য একটি পোস্ট চেক আউট করছি যা মূলত আমার মূল পোস্টের সাথে একই রকম পোস্ট। কোনটি পড়ার মধ্য দিয়ে আমি একটি সাইটের লিঙ্ক পেয়েছি:

http://james.padolsey.com/javascript/special-scroll-events-for-jquery/

এটি আমার নিজের প্রয়োজনের জন্য সামান্য টুইট করার পরে আমার সমস্যাটি খুব সুন্দরভাবে সমাধানে সহায়তা করেছিল, তবে সর্বোপরি প্রচুর ঝাঁকুনি খুঁজে বের করতে সাহায্য করেছে এবং নিজেরাই এটি আবিষ্কার করার প্রায় 4 ঘন্টা আমাকে বাঁচিয়েছে।

এই পোস্টে কিছুটা যোগ্যতা রয়েছে বলে মনে হচ্ছে, আমি অনুভব করেছি যে আমি ফিরে এসে মূলত উল্লিখিত লিঙ্কটিতে পাওয়া কোডটি সরবরাহ করব, ঠিক যদি লেখক কখনও সাইটের সাথে কোনও অন্য দিকে যাওয়ার সিদ্ধান্ত নিয়েছিলেন এবং লিঙ্কটি সরিয়ে শেষ করেন।

(function(){

    var special = jQuery.event.special,
        uid1 = 'D' + (+new Date()),
        uid2 = 'D' + (+new Date() + 1);

    special.scrollstart = {
        setup: function() {

            var timer,
                handler =  function(evt) {

                    var _self = this,
                        _args = arguments;

                    if (timer) {
                        clearTimeout(timer);
                    } else {
                        evt.type = 'scrollstart';
                        jQuery.event.handle.apply(_self, _args);
                    }

                    timer = setTimeout( function(){
                        timer = null;
                    }, special.scrollstop.latency);

                };

            jQuery(this).bind('scroll', handler).data(uid1, handler);

        },
        teardown: function(){
            jQuery(this).unbind( 'scroll', jQuery(this).data(uid1) );
        }
    };

    special.scrollstop = {
        latency: 300,
        setup: function() {

            var timer,
                    handler = function(evt) {

                    var _self = this,
                        _args = arguments;

                    if (timer) {
                        clearTimeout(timer);
                    }

                    timer = setTimeout( function(){

                        timer = null;
                        evt.type = 'scrollstop';
                        jQuery.event.handle.apply(_self, _args);

                    }, special.scrollstop.latency);

                };

            jQuery(this).bind('scroll', handler).data(uid2, handler);

        },
        teardown: function() {
            jQuery(this).unbind( 'scroll', jQuery(this).data(uid2) );
        }
    };

})();

5

আমি উপরের কয়েকটি মন্তব্যে একমত হয়েছি যে একটি টাইমআউট শোনার পক্ষে যথেষ্ট সঠিক ছিল না যেহেতু আপনি যখন স্ক্রোলিং বন্ধ করবেন তার পরিবর্তে আপনি যখন যথেষ্ট পরিমাণে স্ক্রোল বারটি সরিয়ে ফেলবেন তখন ট্রিগার হবে। আমি মনে করি যে ব্যবহারকারীরা স্ক্রোলিং শুরু করার সাথে সাথে মাউসকে (মাউসআপ) ছাড়তে দেওয়া তার চেয়ে আরও ভাল সমাধান হ'ল:

$(window).scroll(function(){
    $('#scrollMsg').html('SCROLLING!');
    var stopListener = $(window).mouseup(function(){ // listen to mouse up
        $('#scrollMsg').html('STOPPED SCROLLING!');
        stopListner(); // Stop listening to mouse up after heard for the first time 
    });
});

এবং এটির কাজ করার একটি উদাহরণ এই জেএসফিডেলে দেখা যায়


2
এটি দুর্দান্ত বলে মনে হচ্ছে তবে আপনি যদি কোনও ট্র্যাকপ্যাড বা কোনও স্ক্রোলহিলের উপর 2-আঙুলের অঙ্গভঙ্গি দিয়ে স্ক্রল করছেন তবে মাউসআপটি বরখাস্ত নয়। এটিও খুব সহজে স্ক্রোল করার সবচেয়ে সাধারণ উপায়, এটি এটিকে সমস্যাযুক্ত করে তোলে।
অ্যাডাম

1
ভাল যুক্তি. তবে এটির জন্য বেশ কয়েকটি সংশোধন রয়েছে। জ্যাকুরির 'মাউসওহিল' ইভেন্ট ব্যবহার করে বা মোসডাউন করা হয়েছে কিনা তা প্রথমে ট্র্যাক করা এবং অন্যদের পরামর্শ অনুসারে টাইমআউট পদ্ধতি ব্যবহার করা। তবে আমি মনে করি মাউস হুইল ইভেন্টগুলির জন্য অন্যান্য উত্তরগুলির সংমিশ্রণটি ব্যবহার করে এবং স্ক্রোল বার টেনে আনার জন্য এই উত্তরটি সবচেয়ে সঠিক ফলাফল দেবে
থিও

3

আপনি নিম্নলিখিত ব্যবস্থাগুলি সহ প্রতি 500 এমএস বা তার পরে চলে এমন একটি বিরতি সেট করতে পারেন:

var curOffset, oldOffset;
oldOffset = $(window).scrollTop();
var $el = $('.slides_layover'); // cache jquery ref
setInterval(function() {
  curOffset = $(window).scrollTop();
  if(curOffset != oldOffset) {
    // they're scrolling, remove your class here if it exists
    if($el.hasClass('showing_layover')) $el.removeClass('showing_layover');
  } else {
    // they've stopped, add the class if it doesn't exist
    if(!$el.hasClass('showing_layover')) $el.addClass('showing_layover');
  }
  oldOffset = curOffset;
}, 500);

আমি এই কোডটি পরীক্ষা করি নি, তবে নীতিটি কাজ করা উচিত।


2
function scrolled() {
    //do by scroll start
    $(this).off('scroll')[0].setTimeout(function(){
        //do by scroll end
        $(this).on('scroll',scrolled);
    }, 500)
}
$(window).on('scroll',scrolled);

শুরু এবং শেষ ক্ষমতা সহ খুব ছোট সংস্করণ


1

ঠিক আছে এটি এমন কিছু যা আমি আগে ব্যবহার করেছি। মূলত আপনি শেষের জন্য একটি রেফিকে দেখেন scrollTop()। আপনার সময়সীমাটি সাফ হয়ে গেলে আপনি বর্তমানটি পরীক্ষা করে দেখুন scrollTop()এবং সেগুলি যদি একই হয় তবে আপনি স্ক্রোলিং সম্পন্ন করেছেন।

$(window).scroll((e) ->
  clearTimeout(scrollTimer)
  $('header').addClass('hidden')

  scrollTimer = setTimeout((() ->
    if $(this).scrollTop() is currentScrollTop
      $('header').removeClass('hidden') 
  ), animationDuration)

  currentScrollTop = $(this).scrollTop()
)

1

স্ক্রোলিং চেক করার সাথে ES6 স্টাইলটিও শুরু হয়।

function onScrollHandler(params: {
  onStart: () => void,
  onStop: () => void,
  timeout: number
}) {
  const {onStart, onStop, timeout = 200} = params
  let timer = null

  return (event) => {
    if (timer) {
      clearTimeout(timer)
    } else {
      onStart && onStart(event)
    }
    timer = setTimeout(() => {
      timer = null
      onStop && onStop(event)
    }, timeout)
  }
}

ব্যবহার:

yourScrollableElement.addEventListener('scroll', onScrollHandler({
  onStart: (event) => {
    console.log('Scrolling has started')
  },
  onStop: (event) => {
    console.log('Scrolling has stopped')
  },
  timeout: 123 // Remove to use default value
}))


0

যাদের এখনও এখনও এটি দরকার তাদের জন্য সমাধানটি

  $(function(){
      var t;
      document.addEventListener('scroll',function(e){
          clearTimeout(t);
          checkScroll();
      });
      
      function checkScroll(){
          t = setTimeout(function(){
             alert('Done Scrolling');
          },500); /* You can increase or reduse timer */
      }
  });



0

আপনি এটি কীভাবে পরিচালনা করতে পারেন তা এখানে:

    var scrollStop = function (callback) {
        if (!callback || typeof callback !== 'function') return;
        var isScrolling;
        window.addEventListener('scroll', function (event) {
            window.clearTimeout(isScrolling);
            isScrolling = setTimeout(function() {
                callback();
            }, 66);
        }, false);
    };
    scrollStop(function () {
        console.log('Scrolling has stopped.');
    });
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>.<br>
</body>
</html>


0

এটি গ্লোবাল টাইমার ব্যবহার করে 1 মিলি সেকেন্ডের পরে স্ক্রোল স্টপ সনাক্ত করে (বা এটি পরিবর্তন করে):

var scrollTimer;

$(window).on("scroll",function(){
    clearTimeout(scrollTimer);
    //Do  what you want whilst scrolling
    scrollTimer=setTimeout(function(){afterScroll()},1);
})

function afterScroll(){
    //I catched scroll stop.
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.