티스토리 뷰

반응형

 

 

 

⭐a,b 값 구하기 위한 1차 함수

 

⭐스크롤이벤트

 

⭐opacity(불투명도)

 

⭐position : stiky *top 속성 필수

 

⭐transform

 

 

html, javascript

<!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">
    <script src="https://code.jquery.com/jquery-3.6.3.min.js"
    integrity="sha256-pvPw+upLPUjgMXY0G+8O0xUf+/Im1MZjXxxgOcBQBXU=" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="main.css">
    
    <title>Document</title>
</head>
<body>
    <div class="card-background">
        <div class="card-box">
          <img src="card1.png">
        </div>
        <div class="card-box">
          <img src="card2.png">
        </div>
        <div class="card-box">
          <img src="card3.png">
        </div>
      </div>

      <script>
        // 스크롤 높이에 따라 변하는 opacity
       

        $(window).scroll(function(){
            var 높이 = $(window).scrollTop();
            console.log(높이);  
            
            

            
            /* 1차 함수는
            y=a*높이+b */

            var y = (-1/500) * 높이 + (115/50);
            
            $('.card-box').eq(0).css('opacity', y); //미지의 변수 y : 높이가 650~1150일때 0~1이 되는 y



            var x = (-1/5000) * 높이 + 565/500;

            $('.card-box').eq(0).css('transform',`scale(${x})`);
  
        })

      </script>
</body>
</html>

 

 

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:400px; /*top 400px 부터 고정됨*/
    margin-top:200px;
}​
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함