아기 천사들~

코딩 어린이의 노트

jquery 반응형 resize만들기

sunny0729 2023. 2. 18. 12:00
728x90
반응형

안녕하세요. ^-^

 

오늘은 퍼블리싱을 하면서

가장 중요한 반응형을 해볼 거예요.

 

반응형은 정말 중요하지만 좀 어렵더라고요.

bootstrap을 쓰는 것도 좋긴 하지만

내 맘대로 안 될 때가 많아서 

 

 

생짜로 코딩하기도 하는데요.

넓이를 체크해서 webmobile을 

알아서 구분해 주면 참 좋아요.

 

오늘은 jquery부분만 보면 될 것 같아요.

 

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
32
33
34
35
36
37
<!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>
<body>
    <section>
        
       
    </section>
    <script src="jquery-3.6.2.min.js"></script>
    <script type="text/javascript">
        $(function ($) {
            onresize_header();
        });
        var check_header = true;
        $(window).on('resize'function(){
            onresize_header();
        });
        function onresize_header() {
        var width = document.body.clientWidth;
        var height = document.body.clientHeight;
    
        if(width <= 991){
            check_header = true;
        }else{
            check_header = false;
        }
        
        console.log("check_header",check_header)
    }
    </script>
</body>
</html>
cs

자바스크립트만 보면 됩니다.

여기서 중요한 부분은 위치예요.

순서가 바뀌면 뭔가 에러가 나거나 console.log가 과하게 찍힐 수 있으니

주의해 주세요. (실제로 해보고 말씀드리는 거랍니다.)

 

 

여기서 중요한 부분은 

function onresize_header() {
        var width = document.body.clientWidth;
        var height = document.body.clientHeight;
    
        if(width <= 991){
            check_header = true;
        }else{
            check_header = false;
        }

입니다.

 

        var width = document.body.clientWidth;

넓이를 체크해 주고 있어요

 

 

        var height = document.body.clientHeight;

높이를 체크해 주고 있어요.

하지만 반응형은 넓이는 신경 쓰지만 높이는 신경 쓰지 않아서

잘 쓰지는 않아요.

 

if(width <= 991){
            check_header = true;
        }else{
            check_header = false;
        }

 

넓이가 991보다 작으며 참 ! 그리하여

모바일 모드입니다.

거짓일 경우는 웹 모드가 되는 것이죠.

 

 

$(function ($) {
            onresize_header();
        });

이 부분에서 처음 실행했을 때의 넓이를 

체크해서 모바일인지 웹인지를 알려줍니다.

 

가장 처음 실행하면 처음이 웹인지 모바일인지를 

체크해 줘요.

false가 떴으니 이것은 웹 모드입니다.

 

사이즈를 줄일 때마다 계속 체크를 해주고 있죠

어느 순간  true가 되었어요.

true가 된 순간 모바일 모드가 된 것입니다.

 

$(window).on('resize', function(){
            onresize_header();

});

위의 코드에서 이 부분이  resize 될 때마다 체크를 해주고 있어요.

 

 

반응형을 만들려면 이 부분이 가장 중요합니다.

헤더 부분도 반응형이 되면 모바일 모드 모양으로

바꾸어 줘야 하거든요.

 

그리고 이 구문을 사용하면 반응형을 좀 더 쉽게

그리고 자연스럽게 만들 수 있어요.

 

728x90

 

저도 저희 회사 개발자 분을 붙들고 한참을

설명을 들었네요.

 

 

모두 이해하지는 못 한 것 같지만

또 물어봐야죠 ㅠㅠ

 

조금이나마 도움이 되었기를 바라며

오늘도 건강하고 행복한 하루 보내세요.

 

 

728x90
반응형