Run Jquery function on window events: load, resize, and scroll?

后端 未结 3 954
孤城傲影
孤城傲影 2020-12-07 16:05

How do I run a jquery function on window events: load, resize, and scroll?

Here is my code I\'m trying to detect if a div is viewable and then if it is run some ajax

相关标签:
3条回答
  • 2020-12-07 16:33

    You can bind listeners to one common functions -

    $(window).bind("load resize scroll",function(e){
      // do stuff
    });
    

    Or another way -

    $(window).bind({
         load:function(){
    
         },
         resize:function(){
    
         },
         scroll:function(){
    
        }
    });
    

    Alternatively, instead of using .bind() you can use .on() as bind directly maps to on(). And maybe .bind() won't be there in future jquery versions.

    $(window).on({
         load:function(){
    
         },
         resize:function(){
    
         },
         scroll:function(){
    
        }
    });
    
    0 讨论(0)
  • 2020-12-07 16:42

    just call your function inside the events.

    load:

    $(document).ready(function(){  // or  $(window).load(function(){
        topInViewport($(mydivname));
    });
    

    resize:

    $(window).resize(function () {
        topInViewport($(mydivname));
    });
    

    scroll:

    $(window).scroll(function () {
        topInViewport($(mydivname));
    });
    

    or bind all event in one function

    $(window).on("load scroll resize",function(e){
    
    0 讨论(0)
  • 2020-12-07 16:48

    You can use the following. They all wrap the window object into a jQuery object.

    Load:

    $(window).load(function () {
        topInViewport($("#mydivname"))
    });
    

    Resize:

    $(window).resize(function () {
       topInViewport($("#mydivname"))
    });
    

    Scroll

    $(window).scroll(function () {
        topInViewport($("#mydivname"))
    });
    

    Or bind to them all using on:

    $(window).on("load resize scroll",function(e){
        topInViewport($("#mydivname"))
    });
    
    0 讨论(0)
提交回复
热议问题