如何让jquery函数在div显示在屏幕上时运行

发布于 2024-12-10 22:24:37 字数 215 浏览 0 评论 0原文

简而言之: 我正在开发一个项目,我想在屏幕上显示特定的 div 时运行一个函数。

详细信息: 在我的模板中,屏幕右下角固定有一个滚动到顶部按钮。当有人向下滚动到页脚时,我想隐藏该按钮。 意味着当有人向下滚动到页脚并且页脚的顶部边框显示在屏幕上时,我想要运行一个函数来隐藏“转到顶部”按钮。

请帮我解决这个问题...

In Short:
I am working on a project and I want to run a function when a particular div is displayed on the screen.

Detail:
There is a scroll to top button fixed on the bottom right of the screen in my template. I want to hide that button when someone scroll down to the footer.
Means when someone scroll down to the footer and the top border of the footer is displayed on the screen, I want a function to run which would hide the go to top button.

Please help me out of this problem...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

国粹 2024-12-17 22:24:37
$(document).ready(function() {
     var footer = $("footer");
     var f_top = footer.position().top;
      $(window).scroll(function() {
           if ($(window).scrollTop() + $(window).height() >= f_top ) {
                footer.hide();          
           }
           else{
              footer.show();          
           }
       });
    }); 
$(document).ready(function() {
     var footer = $("footer");
     var f_top = footer.position().top;
      $(window).scroll(function() {
           if ($(window).scrollTop() + $(window).height() >= f_top ) {
                footer.hide();          
           }
           else{
              footer.show();          
           }
       });
    }); 
長街聽風 2024-12-17 22:24:37

初始化窗口以监视其滚动

$(document).ready(function () {
    $(window).scroll(function () {
        // get the element that you want check scrolling on it
        var off = $("your-selector").offset().top; 
        var top = $(window).scrollTop() + $(window).height();
        if (off <= top) {
            // do your job
            // for example you can call a function like:
            my_method_to_invoke();
        }
    });
});

您要调用它的函数:

function my_method_to_invoke() {
    // TODO
}

Initialize the window to monitoring its scrolling

$(document).ready(function () {
    $(window).scroll(function () {
        // get the element that you want check scrolling on it
        var off = $("your-selector").offset().top; 
        var top = $(window).scrollTop() + $(window).height();
        if (off <= top) {
            // do your job
            // for example you can call a function like:
            my_method_to_invoke();
        }
    });
});

The function you want to invoke it:

function my_method_to_invoke() {
    // TODO
}
聊慰 2024-12-17 22:24:37

我认为您需要在主体上注册一个滚动侦听器,以检查页脚是否在视图中,如果是,则执行隐藏。像这样的东西...

$(body).scroll(function () {
scrollCheck();
});

var scrollCheck = function () {
    var docTop, docBot, elemTop, elemBot;

    docTop = $(window).scrollTop;
    docBot = docTop + $(window).height();
    elemTop = $(<footer element>).offset().top;
    elemBot = elemTop + $(<footer element>).height();

    if ((elemBottom >= docTop) && (elemTop <= docBot)) {
         $(<button element).hide();
    }
}

I think you'll need to register a scroll listener on the body that checks to see if the footer is in view and perform the hide if so. Something like this...

$(body).scroll(function () {
scrollCheck();
});

var scrollCheck = function () {
    var docTop, docBot, elemTop, elemBot;

    docTop = $(window).scrollTop;
    docBot = docTop + $(window).height();
    elemTop = $(<footer element>).offset().top;
    elemBot = elemTop + $(<footer element>).height();

    if ((elemBottom >= docTop) && (elemTop <= docBot)) {
         $(<button element).hide();
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文