相关疑难解决方法(0)

如何在滚动后检查元素是否可见?

我正在通过AJAX加载元素.只有向下滚动页面时,其中一些才可见.
有什么方法我可以知道一个元素现在是否在页面的可见部分?

javascript jquery scroll

1115
推荐指数
22
解决办法
63万
查看次数

使用jQuery获取div的可见高度

我需要在可滚动区域内检索div的可见高度.我认为自己与jQuery相当不错,但这完全让我失望.

假设我在黑色包装中有一个红色div:

在上图中,jQuery函数将返回248,即div的可见部分.

一旦用户滚过div的顶部,如上图所示,它将报告296.

现在,一旦用户滚过div,它将再次报告248.

显然,我的数字不会像在这个演示中那样一致和清晰,或者我只是对这些数字进行硬编码.

我有一点理论:

  • 获取窗口的高度
  • 获得div的高度
  • 从窗口顶部获取div的初始偏移量
  • 用户滚动时获取偏移量.
    • 如果偏移为正,则意味着div的顶部仍然可见.
    • 如果它是负数,那么div的顶部已被窗口黯然失色.此时,div可以占据窗口的整个高度,也可以显示div的底部
    • 如果显示div的底部,请计算它与窗口底部之间的间隙.

看起来很简单,但我无法绕过它.明天早上我会再接受一次破解; 我只想你们中的一些天才可能会有所帮助.

谢谢!

更新:我自己想出来,但看起来下面的答案之一更优雅,所以我将使用它.对于好奇,这是我想出的:

$(document).ready(function() {
    var windowHeight = $(window).height();
    var overviewHeight = $("#overview").height();
    var overviewStaticTop = $("#overview").offset().top;
    var overviewScrollTop = overviewStaticTop - $(window).scrollTop();
    var overviewStaticBottom = overviewStaticTop + $("#overview").height();
    var overviewScrollBottom = windowHeight - (overviewStaticBottom - $(window).scrollTop());
    var visibleArea;
    if ((overviewHeight + overviewScrollTop) < windowHeight) {
        // alert("bottom is showing!");
        visibleArea = windowHeight - overviewScrollBottom;
        // alert(visibleArea);
    } else {
        if (overviewScrollTop < 0) { …
Run Code Online (Sandbox Code Playgroud)

javascript jquery height visible

83
推荐指数
3
解决办法
5万
查看次数

找到第一个可滚动的父级

我有这种情况需要将元素滚动到视口中.问题是我不知道哪个元素是可滚动的.例如,在Portrait中,body是可滚动的,而在Landscape中它是另一个元素(并且有更多情况可以改变可滚动元素)

现在的问题是,给定一个需要滚动到视口中的元素,找到第一个可滚动父级的最佳方法是什么?

我在这里设置了一个演示.使用按钮,您可以在两种不同的情况之间切换

<div class="outer">
    <div class="inner">
        <div class="content"> 
            ...
            <span>Scroll me into view</span>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

身体是可滚动的或 .outer

有什么建议 ?

javascript html5 css3

39
推荐指数
4
解决办法
2万
查看次数

使用jQuery滚动到一个元素

我需要页面滚动才能看到元素.

我试过的选项:

  • jQuery scrollTo:问题是页面滚动使元素位于顶部(或者至少它试图这样做,就像它的工作原理一样:<a name="xyz">/ <a href="#xyz">).我想要的是最小滚动量,以便整个元素可见(并且,如果元素太高,就像那里的锚一样工作).

  • scrollIntoView:太糟糕了,我想让它顺利滚动(比如$.scrollTo($('#id1'), 'fast');).此外,它似乎也没有做我想要的.

html javascript jquery

14
推荐指数
2
解决办法
2万
查看次数

使用箭头键浏览列表?(JavaScript的/ JQ)

我似乎无法找到如何实现这一目标的答案,但这是我多次见过的一个功能.基本上我正在回显列表,我想创建使用箭头键/输入突出显示和选择这些项目的功能.有人可以帮助我了解如何实现这一目标吗?我知道如何使用密钥代码(当然),而不是如何将其转换为功能代码以选择列表中的项目...

我想也许我必须有一些隐藏的单选按钮来将其标记为选中或不...但即使这样我也不知道如何从一个单选按钮跳到另一个上下列表.所以如果有人能帮我一把,我真的很感激.谢谢.

javascript navigation jquery arrow-keys

13
推荐指数
3
解决办法
3万
查看次数

如何在iOS 10.3.1中修复Safari的html边距底部错误

我在iOS 10.3.1中注意到,在使用safari并激活虚拟键盘时,您可以一直向上滚动页面并在html元素和虚拟键盘之间留下空白区域(与主体颜色相同).

您可以看到蓝色区域是检查员认为的html元素,并且在虚拟键盘和html之间存在白色间隙(如果我将体背景设置为黑色则为黑色).

怪异的bug

请注意,此间隙不会自动显示.键盘出现时必须向上滚动.我注意到了这一点,因为我使用javascript向上滚动来修复中文9键盘键盘的错误(它将覆盖屏幕的底部,恰好是textarea).

html javascript css ios

13
推荐指数
1
解决办法
792
查看次数

滚动到具有jQuery的特定元素

我有一长串嵌套的div.我在查询字符串上传递一个特定元素的ID(实际上是一个段落元素)并打开它的div和父onload.但是,列表太长,有时打开的元素隐藏在窗口底部下方.

如何自动滚动用户的浏览器窗口以使显示的元素位于屏幕顶部?

你可能不需要这个,但是为了记录...我的列表看起来像这样:

<div id="div1">
    <p id="1"></p>   
    <div>stuff</div>
    <p id="2"></p>   
    <div>stuff</div>
    <p id="3"></p>   
    <div>stuff</div>
</div>
...
<div id="divN">
    <p id="997"></p>   
    <div>stuff</div>
    <p id="998"></p>   
    <div>stuff</div>
    <p id="999"></p>   
    <div>stuff</div>
</div>
Run Code Online (Sandbox Code Playgroud)

html jquery

6
推荐指数
2
解决办法
5998
查看次数

标签 统计

javascript ×6

jquery ×5

html ×3

arrow-keys ×1

css ×1

css3 ×1

height ×1

html5 ×1

ios ×1

navigation ×1

scroll ×1

visible ×1