StickyUI
<body>
<div class="card-background">
<div class="card-box">
<img src="card1.png" alt="" />
</div>
<div class="card-box"><img src="card2.png" alt="" /></div>
<div class="card-box"><img src="card3.png" alt="" /></div>
</div>
</body>
CSS.card-background {
height: 3000px;
margin-top: 800px;
margin-bottom: 1600px;
}
.card-box img {
display: block;
margin: auto;
max-width: 80%;
}
.card-box {
position: sticky;
top: 200px;
margin-top: 100px;
/* transform: scale(1); */
transition: all 0.2s;
}
position:sticky
効果でスクロールすると固定されます.この場合、位置座標のプロパティも同時に指定する必要があります.(
top:200px
) $(window).scroll(function () {
var 높이 = $(window).scrollTop()
// console.log(높이)
// 650~1150까지 스크롤바를 내리면, 첫째카드의 opacity를 1~0으로 서서히 변경해라
// var y = a * 높이 + b
// 높이가 650일때는 y가 1
// 1 = a * 650 + b;
// 0 = a * 1150 + b;
// a = -1 / 500
// b = 115 / 50
var y1 = (-1 / 500) * 높이 + 115 / 50
var y2 = (-0.1 / 500) * 높이 + 1.13
// console.log(y2)
$(".card-box").eq(0).css("opacity", y1)
$(".card-box").eq(0).css("transform", `scale(${y2})`)
})
高さ(650~1150)の変化に伴い、
opacity
の属性が変化する必要があります.スクロールバーを650~1150まで下にスクロールし、1枚目のカードの透明度を徐々に1~0に変更します.
var y = a * 높이 + b
高さ650の場合、y(不透明)は1であり、高さ1150の場合、y(不透明)は0
1 = a * 650 + b;
0 = a * 1150 + b;
a = -1 / 500
b = 115 / 50
var y1 = (-1 / 500) * 높이 + 115 / 50
$(".card-box").eq(0).css("opacity", y1)
Reference
この問題について(StickyUI), 我々は、より多くの情報をここで見つけました https://velog.io/@aksel26/StickyUIテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol