相关疑难解决方法(0)

检查用户是否已滚动到底部

我正在创建一个分页系统(有点像Facebook),当用户滚动到底部时,内容会加载.我想最好的方法是找到用户位于页面底部并运行ajax查询以加载更多帖子.

唯一的问题是我不知道如何检查用户是否已使用jQuery滚动到页面底部.有任何想法吗?

我需要找到一种方法来检查用户何时使用jQuery滚动到页面底部.

javascript jquery pagination scroll

635
推荐指数
16
解决办法
50万
查看次数

JQuery Detect Scroll at Bottom

我想在用户滚动到页面底部时实现内容加载.

我遇到了问题.它适用于桌面浏览器,但不适用于移动设备.我已经实现了一个脏修复程序,使其在iPhone上运行,但不是最佳,因为它不适用于其他大小的移动设备.

我的网站是www.cristianrgreco.com,向下滚动以查看效果

问题是添加滚动和高度不等于移动设备的高度,而它们在桌面浏览器上.

有没有办法检测移动浏览器?

提前致谢.

以下是当前使用的代码:

$(document).ready(function () {
        $(".main").hide().filter(":lt(3)").show();
        if ($(document).height() == $(window).height()) {
            // Populate screen with content
        }
        else if (navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i)) {
            window.onscroll = function () {
                if ($(document).height() - $(window).scrollTop() <= 1278) {
                    // At the moment only works on iPhone
                }
            }
        }
        else {
            $(window).scroll(function () {
                if ($(window).scrollTop() + $(window).height() >= $(document).height()) {                     
                    // Works perfect for desktop browsers
                }
            })
        }
})
Run Code Online (Sandbox Code Playgroud)

jquery

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

如何检测滚动到html元素的底部

我有这个我通过Id引用的元素:

    let infiniteScrollElement = document.getElementById('th-infinite-scroll-tracker');
Run Code Online (Sandbox Code Playgroud)

当浏览器到达元素的底部时我需要监听.

怎么做到这一点?

angular2-directives angular2-template angular

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

向下滚动到截面时突出显示菜单项

我知道这个问题已经在这个论坛上被问了一百万次,但没有一篇文章帮助我找到解决方案.

我做了一小段jquery代码,当你向下滚动到与hash-link中id相同的部分时,它会突出显示hash-link.

$(window).scroll(function() {
    var position = $(this).scrollTop();

    $('.section').each(function() {
        var target = $(this).offset().top;
        var id = $(this).attr('id');

        if (position >= target) {
            $('#navigation > ul > li > a').attr('href', id).addClass('active');
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

现在的问题是它突出显示所有哈希链接,而不仅仅是该部分与之关系的哈希链接.任何人都可以指出错误,还是我忘记了什么?

javascript hash jquery hyperlink sections

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

如何知道何时进入iframe?

如果我有一个包含iframe的网站:

<html>

    <body>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <br/>
        <iframe src="http:/somelink.com/iframe.html"></iframe>
    </body>

</html>
Run Code Online (Sandbox Code Playgroud)

那么iframe是否可以知道它是否可以被"看到"?这例如通过知道与屏幕顶部相关的iframe的顶部位置.

这是我的测试iframe :(所有值都是0,无论父级的滚动位置)

<html>
    <head>
        <script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
        <script type="text/javascript">

            $(document).ready(function() {
                console.log("ok");  

                check();

            });


            function check() {

                // position of parent
                var parentScrollTop = $(window.parent.document).scrollTop();
                console.log("parentScrollTop: "+parentScrollTop);

                // self position
                var bodyPosition = $("body").position().top;
                console.log("body position: "+bodyPosition);

                setInterval(check, 1000);
            }

        </script>

        <style type="text/css">
            body {
                background-color: red;
            }
        </style>
    </head>
    <body>

    </body>
</html> …
Run Code Online (Sandbox Code Playgroud)

html javascript iframe jquery

8
推荐指数
1
解决办法
3069
查看次数

检查用户是否在亚像素精度时代滚动到底部

我找到了经典的MDN 公式来检查内容是否已滚动到底部,

element.scrollHeight - element.scrollTop === element.clientHeight
Run Code Online (Sandbox Code Playgroud)

不再适用于所有情况。例如,如果您将MDN 上的演示页面的内容比例更改为大于 100%,您将不会获得正确的结果。发生这种情况是因为现在浏览器在元素上使用亚像素精度。特别scrollTop是现在不是 100% 的比例是小数值。实际上,问题的发生是因为===上面公式中的符号。

那么最简单但仍然可靠的解决方案是什么?

javascript dom

7
推荐指数
1
解决办法
1493
查看次数

滚动到页面底部时如何加载disqus?

我看到一些jekyll博客使用disqus作为评论,评论部分不会加载,直到你滚动到页面底部.

我怎么处理这个?

我尝试过这样的事情:

<div id="disqus_thread"></div>
<div id="disqus_loader" style="text-align: center">
<button onclick="load_disqus()">Load Disqus Comments</button>
<script>
function load_disqus()
{
  var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
  dsq.src = "http://[YOUR-DISQUS-SHORTNAME].disqus.com/embed.js";
  (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  var ldr = document.getElementById('disqus_loader');
  ldr.parentNode.removeChild(ldr);
}
</script>
</div>
Run Code Online (Sandbox Code Playgroud)

单击按钮以加载disqus.但我想知道当我滚动到页面底部时如何加载它.

javascript disqus

5
推荐指数
1
解决办法
1960
查看次数

检查用户是否已到达页面底部

我试图在用户向下滚动并到达页面底部时触发一个事件。

我在互联网上搜索并在 stackoverflow 中找到了一些帖子,但出乎意料的是,答案对我不起作用。

例如:检查用户是否滚动到底部

使用上述 SO 帖子给出的答案,我尝试触发的事件在到达页面顶部而不是底部时执行。

如果我出错了,请告诉我:

$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height()) {
   loadmore();
}
});

function loadmore(){

var lastProd = $('.product_div').last(); 
var lastProdID = $('.product_div').last().prop('id'); 
//console.info(lastProdID); return false;
//var val = document.getElementById("row_no").value;
$.ajax({
    type: 'post',
    url: 'includes/load_products.php',
    data: { getresult:lastProdID },
    success: function (response) {
        console.log(response);
        //var content = document.getElementById("all_rows");
        //content.innerHTML = content.innerHTML+response;
        lastProd.after(response);

        // We increase the value by 10 because we limit the results by 10
        // document.getElementById("row_no").value = Number(val)+10;
    }
}); …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery

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