页面整屏滚动效果

效果展示

屏幕整屏滚动

代码实现

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    html,
    body {
        margin: 0px;
        padding: 0px;
        text-align: center;
        height: 100%;
    }

    ul {
        position: fixed;
        width: 100%;
        top: 0px;
    }

    ul,
    li {
        line-height: 100vh;
        margin: 0px;
        padding: 0px;
        list-style: none;
        font-size: 20px;
        height: 100vh;
        color: white;
        transition-duration: 1s;
    }

    li:nth-child(odd) {
        background: rgb(235, 171, 234);
    }

    li:nth-child(even) {
        background: rgb(150, 220, 244);
    }
</style>

<body>
    <ul>
        <li>第一页</li>
        <li>第二页</li>
        <li>第三页</li>
        <li>第四页</li>
        <li>第五页</li>
        <li>第六页</li>
    </ul>
</body>
<script>
    let ulDom = document.querySelector('ul')
    let liList = document.querySelectorAll('li')
    const viewHeight = document.body.clientHeight
    let index = 0;
    var lastTime = 0;
    //监听鼠标滚动
    document.addEventListener('mousewheel', function (e) {
        //节流
        var nowTime = Date.now();
        if (nowTime - lastTime > 2000) {
            // 更新时间戳
            lastTime = nowTime;
            if (e.wheelDelta < 0) {
                scrollEvent1()
            } else {
                scrollEvent1('back')
            }
        } else {
            console.log('阻止', );
        }
    })
    // 兼容火狐浏览器的监听事件
    document.addEventListener('DOMMouseScroll', function (e) {
        //节流
        var nowTime = Date.now();
        if (nowTime - lastTime > 2000) {
            // 更新时间戳
            lastTime = nowTime;
            // 
            if (e.detail > 0) {
                scrollEvent1()
            } else {
                scrollEvent1('back')
            }
        } else {
            console.log('阻止', );
        }
    })
    function scrollEvent1(behavior='forward') {
        if (behavior ==='forward') {
            if (index === liList.length-1) {
                return false;
            }
            index += 1
            console.log("鼠标滚轮后滚,看下一页")
            ulDom.style.top = -index * viewHeight + 'px'
        } else {
            if (index === 0) {
                return false;
            }
            index -= 1
            console.log("鼠标滚轮前滚,看上一页")
            ulDom.style.top = -index * viewHeight + 'px'
        }
    }
    console.log('mousewheel',navigator);
</script>

</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要制作整滚动的HTML页面,可以使用现成的JavaScript库,如fullPage.js或PagePiling.js。这些库提供了易于使用的API,可以帮助您快速创建漂亮的全滚动页面。 以下是使用fullPage.js创建整滚动页面的基本步骤: 1. 在HTML文档中引入fullPage.js库和相关的CSS文件。 2. 创建一个包含所有幕内容的主容器,并将每个幕作为容器的子元素。 3. 在JavaScript代码中初始化fullPage.js插件,并配置选项,如每个幕的背景色、过渡效果和导航条等。 4. 在每个幕容器中添加内容,如标题、文本、图片、视频等。 下面是一个使用fullPage.js创建整滚动页面的示例代码: ``` <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Full Page Scrolling</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/3.1.0/fullpage.min.css" integrity="sha512-XqXJLOb3u3iZfK6I5rJ5+0J5oE3tUa2Yi5W/lJw1RJH+iP9yKOCeJYf4Sb3xMLc9VQw7UOXK/3GsQjM9y4LkGg==" crossorigin="anonymous" /> </head> <body> <div id="fullpage"> <div class="section"> <h1>Section 1</h1> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam in dui mauris. Vivamus hendrerit arcu sed erat molestie vehicula. Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor.</p> </div> <div class="section"> <h1>Section 2</h1> <p>Phasellus sodales massa malesuada tellus fringilla, nec bibendum tellus blandit. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Nulla lectus ante, consequat et ex eget, feugiat tincidunt metus.</p> </div> <div class="section"> <h1>Section 3</h1> <p>Aliquam bibendum, turpis eu mattis iaculis, ex lorem mollis sem, ut sollicitudin risus orci quis tellus. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula.</p> </div> </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/3.1.0/fullpage.min.js" integrity="sha512-GSPzZwI8Zi6SbCk1DvGJZ8HqPn9J1rGqSbfiFzQYb1VtkL0OgqctjN5qY4CvM7G7A8V1O7y4p5G5dZs64Sx2/w==" crossorigin="anonymous"></script> <script> new fullpage('#fullpage', { // options here autoScrolling:true, scrollHorizontally: true, sectionsColor: ['#f2f2f2', '#4BBFC3', '#7BAABE', 'whitesmoke'], navigation: true, navigationPosition: 'right', }); </script> </body> </html> ``` 在这个示例中,我们创建了一个包含三个幕的主容器,并使用fullPage.js插件配置每个幕的背景色、导航条和过渡效果。在每个幕容器中添加了标题和文本内容。将以上代码保存为HTML文件,然后在浏览器中打开,你就可以看到一个漂亮的整滚动页面了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值