javascript - 如何做自动滚动

标签 javascript jquery html css

我的站点中有一些 div
我希望当用户向上滚动一点时,页面将滚动并显示下一个 div
例如,如果我有 2 个 div:

 <div style="height:800px;">some content </div>
 <div style="height:800px;">some content </div>

因此,当页面加载第一个 div 时显示,现在我希望如果用户稍微滚动到下一个 div,所有页面将向上滚动并显示下一个 div

最佳答案

使用 jQuery

取自Check if element is visible after scrolling

您可以使用此函数来检测用户是否“稍微滚动到下一个 div”,然后显示您打算显示的 div:

<div id="div1" style="height:800px;">some content</div>
<div id="div2" style="height:800px;">some content</div>

// checks if the element passed in is in view
function isScrolledIntoView(elem)
{
    var $elem = $(elem);
    var $window = $(window);

    var docViewTop = $window.scrollTop();
    var docViewBottom = docViewTop + $window.height();

    var elemTop = $elem.offset().top;
    var elemBottom = elemTop + $elem.height();

    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}

// get the element to check e.g. the "next div" in your case
var el = document.getElementById('div2');

// when the user scrolls, check if the element has come into view
window.onscroll = function() {
    if (isScrolledIntoView(el)) {
        // take the user to the top of the div by it's id
        $('html, body').animate({ 
            scrollTop: $('#div2').offset().top 
        }, 'slow');
        return false;
    }
}

关于javascript - 如何做自动滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36814080/

相关文章:

javascript - 如何向下滚动到动态添加的 ul 中的最后一个 li 项?

javascript - 在 ASP.NET MVC 站点的 Bootstrap 文件输入插件中读取服务器响应

javascript - 使用 AJAX 和 jQuery 从数据库中获取实时比分

php - 通过 jquery ajax 将多维数组输入从 html 解析为 php

jquery - 我是否需要将托管在 CDN 上的文件添加到 list 文件 HTML 5 list 文件中以进行离线缓存?

javascript - 我正在尝试在 javascript 中验证没有警报功能的文本字段,但它不起作用

javascript - 在 php 键中使用右方括号

javascript - 为什么数据绑定(bind)不适用于我的自定义属性指令

javascript - 如何使我的叠加图像居中?

页面顶部的 HTML/CSS 意外空白字段