苹果官网粘性定位展示效果

在这里插入图片描述

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

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>one</title>
  <link href="./css/sticky2.css" rel="stylesheet" type="text/css" />
</head>

<body>
  <div class="container">
    <div class="black inner">
      <h3 style="color: white;">black</h3>
      <img id='img' src="./image/black.png">
    </div>
    <div class="white inner">
      <h3 style="color: black;">white</h3>
      <img id='img' src="./image/white.png">
    </div>
    <div class="red inner">
      <h3 style="color:aquamarine;">red</h3>
      <img id='img' src="./image/red.png">
    </div>
  </div>
  <script>
    let white = document.querySelector('.white')
    let red = document.querySelector('.red')
    let Img = document.getElementById('img')
    let scrollHeight = document.documentElement.scrollHeight
    let clientHeight = document.documentElement.clientHeight
    window.onscroll = function () {
      let scrollTop = document.documentElement.scrollTop;

      let inset = (scrollTop / (scrollHeight - clientHeight)) * 100

      white.style.clipPath = `inset(${(50 - inset) * 2}% 0 0 0)`
      red.style.clipPath = `inset(${(100 - inset) * 2}% 0 0 0)`
    }
  </script>
</body>
</html>
* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
html,body {
  height: 600vh;
  overflow: visible;
}
.container {
  min-height: 100vh;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  overflow: hidden;
}
.inner {
  width: 100vw;
  display: flex;
  justify-content: center;
  position: absolute;
  overflow: hidden;
}
.inner h3 {
  position: absolute;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: bold;
  font-size: 60px;
  top: 100px
}
.inner img {
  transform: translateY(40%);
}
.black{
  background-color: black;
}
.white{
  background-color: white;
  z-index: 5;
  -webkit-clip-path: inset(100% 0px 0px 0px);
}
.red{
  background-color: rgb(142, 3, 3);
  z-index: 10;
  -webkit-clip-path: inset(100% 0px 0px 0px);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值