前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CSS 3.0粘性定位的妙用

CSS 3.0粘性定位的妙用

作者头像
越陌度阡
发布2020-11-26 11:17:06
4510
发布2020-11-26 11:17:06
举报

position:sticky是 CSS 3.0新增的定位属性,可以说是相对定位relative和固定定位fixed的结合,它主要用在对scroll事件的监听上,简单来说,在滚动过程中,元素距离其父元素的距离达到sticky粘性定位的要求时,效果会变成fixed定位,固定到适当位置,下面给大家看一个效果。

这个属性用的概率比较小,不过在特定的场合,它真是个好东西,不用写那么复杂的JS,以下是代码实现。

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS 3.0粘性定位的妙用</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            font-family: '微软雅黑', sans-serif;
            box-sizing: border-box;
        }

        .banner {
            position: relative;
            width: 100vw;
            height: 100vh;
        }

        .banner img {
            width: 100%;
            height: 100%;
        }

        section:nth-child(2n+1) {
            position: relative;
            height: auto;
            background: #fafafa;
            display: flex;
            flex-direction: row-reverse;
        }

        section:nth-child(2n+2) {
            position: relative;
            height: auto;
            background: #fafafa;
            display: flex;
        }

        section .img-box {
            /* 关键属性 */
            position: sticky;
            top: 0;
            min-width: 50%;
            height: 100vh;
        }

        section .img-box img {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            max-width: 600px;
        }

        section:nth-child(2n+1) .content {
            padding: 100px 0 100px 100px;
            text-align: right;
        }

        section:nth-child(2n+2) .content {
            padding: 100px 100px 100px 0;
            text-align: left;
        }

        section .content h2 {
            margin: 0 0 20px;
            font-size: 60px;
        }

        section .content p {
            color: #777;
            font-size: 20px;
            margin-bottom: 20px;
        }
    </style>
</head>

<body>
    <div class="banner">
        <img src="banner.png">
    </div>
    <div id="box">
        <section>
            <div class="img-box">
                <img src="img.png">
            </div>
            <div class="content">
                <h2>Apple Watch</h2>
                <p>
                    Apple Watch是苹果公司于2014年9月公布出来的智能手表,分为运动款、普通款和定制款三种,采用蓝宝石屏幕,有银色,金色,红色,绿色和白色等多种颜色可以选择
                </p>
                <p>
                    Apple Watch是苹果公司于2014年9月公布出来的智能手表,分为运动款、普通款和定制款三种,采用蓝宝石屏幕,有银色,金色,红色,绿色和白色等多种颜色可以选择
                </p>
                <p>
                    Apple Watch是苹果公司于2014年9月公布出来的智能手表,分为运动款、普通款和定制款三种,采用蓝宝石屏幕,有银色,金色,红色,绿色和白色等多种颜色可以选择
                </p>
                <p>
                    Apple Watch是苹果公司于2014年9月公布出来的智能手表,分为运动款、普通款和定制款三种,采用蓝宝石屏幕,有银色,金色,红色,绿色和白色等多种颜色可以选择
                </p>
                <p>
                    Apple Watch是苹果公司于2014年9月公布出来的智能手表,分为运动款、普通款和定制款三种,采用蓝宝石屏幕,有银色,金色,红色,绿色和白色等多种颜色可以选择
                </p>
                <p>
                    Apple Watch是苹果公司于2014年9月公布出来的智能手表,分为运动款、普通款和定制款三种,采用蓝宝石屏幕,有银色,金色,红色,绿色和白色等多种颜色可以选择
                </p>
                <p>
                    Apple Watch是苹果公司于2014年9月公布出来的智能手表,分为运动款、普通款和定制款三种,采用蓝宝石屏幕,有银色,金色,红色,绿色和白色等多种颜色可以选择
                </p>
                <p>
                    Apple Watch是苹果公司于2014年9月公布出来的智能手表,分为运动款、普通款和定制款三种,采用蓝宝石屏幕,有银色,金色,红色,绿色和白色等多种颜色可以选择
                </p>
                <p>
                    Apple Watch是苹果公司于2014年9月公布出来的智能手表,分为运动款、普通款和定制款三种,采用蓝宝石屏幕,有银色,金色,红色,绿色和白色等多种颜色可以选择
                </p>
            </div>
        </section>
    </div>
    <script>
        // 加点内容
        let box = document.getElementById('box');
        for(let i=0;i<2;i++){
            box.innerHTML +=box.innerHTML;
        };
    </script>
</body>

</html>

以下是上面代码中用到的图片。

img.png

banner.png

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档