【问题标题】:Jquery if target element is visible on screen quasionJquery如果目标元素在屏幕quasion上可见
【发布时间】:2013-08-23 05:56:55
【问题描述】:

我正在使用 wordpress,我们有动态侧边栏。在侧边栏中,我们有许多小部件。 我想要做的是显示屏幕上可见的分区(小部件)(onload - 在页面加载后)。其他小部件将被隐藏(不透明度 0 或类似的东西),但是当我滚动时,我希望该小部件(在屏幕上不可见)以淡入淡出效果出现。

我使用此代码隐藏我所有的侧边栏块在加载时不透明度为 0。

我需要帮助才能始终显示屏幕上可见的所有小部件,然后在滚动到其他部件时产生淡入淡出效果。

感谢您的帮助!

$(document).ready(function(){
tiles = $("#sidebar1 div").fadeTo(0, 0);
});
$(window).scroll(function(d,h) {
    tiles.each(function(i) {
        a = $(this).offset().top + $(this).height();
        b = $(window).scrollTop() + $(window).height();
        if (a < b) $(this).fadeTo(500,1);
    });
});

滚动功能正在运行。问题是,当页面满载时,我保存所有小部件的侧边栏类的不透明度为 0(如 display:none)。我需要的是,当页面加载时,它将为屏幕上可见的所有小部件提供不透明度 1(例如 10 个小部件中的 2 个)。然后当用户滚动时,它会以淡入淡出的效果相互显示其他小部件。感谢您的帮助!

【问题讨论】:

    标签: jquery wordpress dom scroll onload


    【解决方案1】:

    你可以试试这个:

    在窗口滚动你可以检查这个:

     tiles.each(function(){ 
          if($(this).css("opacity") == 0){
             //your hidden div
          }else{
             //your visible div
          }
     });
    

    希望对你有帮助。

    【讨论】:

    • 您好@maverickosama92 它不起作用,因为从一开始的所有侧边栏都在不透明度0,所以这个函数总是会返回false。感谢您的帮助。
    • 您好@maverickosama92,感谢您的帮助。这可能会有所帮助,但我怎么知道女巫是“在屏幕区域”?
    • @need-help:: 我认为 position() 将帮助您找到是否在区域上的 div.. 或查看此链接:stackoverflow.com/questions/487073/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 2013-10-30
    • 2015-03-29
    • 1970-01-01
    • 2011-07-18
    相关资源
    最近更新 更多