在窗口事件上运行Jquery函数:加载,调整大小和滚动?

use*_*326 20 html javascript jquery

如何在窗口事件上运行jquery函数:加载,调整大小和滚动?

这是我的代码我试图检测div是否可见,然后如果它运行一些ajax代码...


<script>
function topInViewport(element) {
    return $(element).offset().top >= $(window).scrollTop() && $(element).offset().top          <= $(window).scrollTop() + $(window).height();
 }

 </script>

<script>
topInViewport($("#mydivname"))
{
// ajax code goes here
}
Run Code Online (Sandbox Code Playgroud)

mat*_*mmo 108

您可以使用以下内容.它们都将window对象包装成jQuery对象.

加载:

$(window).load(function () {
    topInViewport($("#mydivname"))
});
Run Code Online (Sandbox Code Playgroud)

调整:

$(window).resize(function () {
   topInViewport($("#mydivname"))
});
Run Code Online (Sandbox Code Playgroud)

滚动

$(window).scroll(function () {
    topInViewport($("#mydivname"))
});
Run Code Online (Sandbox Code Playgroud)

或使用on以下方法绑定它们:

$(window).on("load resize scroll",function(e){
    topInViewport($("#mydivname"))
});
Run Code Online (Sandbox Code Playgroud)


Sac*_*tte 21

您可以将侦听器绑定到一个常用函数 -

$(window).bind("load resize scroll",function(e){
  // do stuff
});
Run Code Online (Sandbox Code Playgroud)

或者另一种方式 -

$(window).bind({
     load:function(){

     },
     resize:function(){

     },
     scroll:function(){

    }
});
Run Code Online (Sandbox Code Playgroud)

或者,.bind()您可以使用.on()as bind直接映射到而不是使用on().也许.bind()将来不会出现jquery版本.

$(window).on({
     load:function(){

     },
     resize:function(){

     },
     scroll:function(){

    }
});
Run Code Online (Sandbox Code Playgroud)