λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

study/java$cript

[javascript] onresize() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄ 크기에 따라 λ³€ν™”ν•˜λŠ” λ°˜μ‘ν˜• μ½”λ”©ν•˜κΈ°

λ°˜μ‘ν˜•

 


 

πŸ’‘

μ˜€λŠ˜μ€ μœˆλ„μš° μ°½ 크기에 따라 λ³€ν™”λ₯Ό κ°μ§€ν•˜λŠ”  onresize() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄ λ°˜μ‘ν˜• μ½”λ”©ν•˜λŠ” 법을 μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

πŸ‘€μ΄μ „ ν¬μŠ€νŒ…

https://yeonzzy.tistory.com/24?category=948652 

 

[javaScript]μ‚Όν•­μ—°μ‚°μžλ‘œ κ°„λ‹¨ν•˜κ²Œ μ½”λ”©ν•˜κΈ°

πŸ’‘ μ˜€λŠ˜μ€ κ°„λ‹¨ν•˜κ³  κ°„νŽΈν•˜κ²Œ μ½”λ”©ν•  수 μžˆλŠ” μ‚Όν•­μ—°μ‚°μžμ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. πŸ‘€μ΄μ „ ν¬μŠ€νŒ… https://yeonzzy.tistory.com/22 [jQuery]prop("checked") 와 is(":checked")의 μ°¨μ΄λŠ” λ¬΄μ—‡μΌκΉŒ? πŸ’‘ μ˜€λŠ˜μ€ 체크..

yeonzzy.tistory.com

 


 

λ°˜μ‘ν˜• μ΄λž€?

λ°˜μ‘ν˜• μ›Ή (Responsive Web)은 μ›Ήμ œμž‘κ³Ό κ΄€λ ¨λœ 기술둜

pc, λͺ¨λ°”일, νƒœλΈ”λ¦Ώ λ“± 각각의 κΈ°κΈ°λ³„λ‘œ ν™ˆνŽ˜μ΄μ§€μ˜ νŽ˜μ΄μ§€κ°€ μ΅œμ ν™”λ˜μ–΄ λ³΄μ—¬μ§€λŠ” κΈ°λŠ₯으둜

이용자 기기의 ν™”λ©΄μ΄λ‚˜ ν™˜κ²½μ— 맞게 자유자재둜 λ³€ν•˜λŠ” 것이닀.

 

resize()

window 객체의  onresize()  ν”„λ‘œνΌν‹°λŠ” μ‚¬μš©μžκ°€ λΈŒλΌμš°μ € μ°½μ΄λ‚˜ ν”„λ ˆμž„μ„ λ³€κ²½ν–ˆμ„ λ•Œ ν˜ΈμΆœλ˜λŠ” μ΄λ²€νŠΈμ΄λ‹€.

βœ… 슀크립트 μž‘μ„± window.onresize = function(event){}

βœ… 이벀트 호좜  window.addEventListener('resize', function(event) { ... }, true);

βœ… ν•¨μˆ˜ν˜ΈμΆœ  <body onresize="myFunction()">

 

1번 방법인 슀크립트λ₯Ό μž‘μ„±ν•˜μ—¬ μœˆλ„μš°μ˜ 크기가 변경될 λ•Œ λ§ˆλ‹€ μ‚¬μ΄μ¦ˆλ₯Ό λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€.

<!-- κ΄€λ ¨ μŠ€νƒ€μΌ& html -->
<style>
    body{width: 100%; border: 10px solid red; margin: 0 auto;}
    h1{text-align: center;}
</style>
<body>
    <h1 id="size">window size</h1>
</body>

 

// .js

var size = document.getElementById("size");

window.onresize = function(event){
var innerWidth = window.innerWidth;
size.textContent = innerWidth;
}

 

 

더 λ‚˜μ•„κ°€ μœˆλ„μš°μ˜ 크기가 1280 μ΄ν•˜λ‘œ μž‘μ•„μ§€λ©΄ border 색상을 νŒŒλž‘μƒ‰μœΌλ‘œ

κ·Έ μ΄μƒμœΌλ‘œ 컀지면 border 색상을 κ²€μ •μœΌλ‘œ λ³€ν™”ν•˜λŠ” 코딩을 κ΅¬ν˜„ν•  수 μžˆλ‹€.

// window width κ°’ λ³€ν™” μ‹œ border color λ³€κ²½.js
var body = document.getElementsByTagName("body")[0];

window.onresize = function(event){
var innerWidth = window.innerWidth;
innerWidth <= "1280" ? body.style.borderColor = "blue" : body.style.borderColor = "black";
}

 

 

 

inner / outer의 차이

κ·Έλ ‡λ‹€λ©΄ window의 κ°€λ‘œ μ‚¬μ΄μ¦ˆλ₯Ό μ•Œ 수 μžˆλŠ” μ†μ„±λ“€μ˜ 차이점은 λ¬΄μ—‡μΌκΉŒ?

πŸ‘† innerWidth , innerHeight

ν˜„μž¬ 화면에 λ³΄μ΄λŠ” μ›Ή λΈŒλΌμš°μ € νŽ˜μ΄μ§€

✌ outerWidth , outerHeight

μ›Ή λΈŒλŸ¬μš°μ € μ°½ 자체의 크기

 

innerλŠ” html둜 μž‘μ„±λ˜λŠ” 뢀뢄인  νŒŒλž€λΌμΈ 뢀뢄이  innerWidth  와  innerHeight  이고

outerλŠ” μ•„λž˜μ˜ μ‚¬μ§„μ—μ„œ λΉ¨κ°„ 뢀뢄이  outerWidth  와  outerHeight  이닀.

inner / outer

 

λŒ€λΆ€λΆ„ 전체 창의 ν¬κΈ°λŠ” ν•„μš”ν•˜μ§€ μ•Šκ³  κ΅¬ν˜„λ˜μ–΄ λ³΄μ—¬μ§€λŠ” inner 속성을 많이 μ‚¬μš©ν•œλ‹€.

μ΄λ ‡κ²Œ ν™”λ©΄μ˜ 크기λ₯Ό μ‹€μ‹œκ°„μœΌλ‘œ κ°μ§€ν•˜μ—¬ λ³€ν™”κ°€ ν•„μš”ν•  땐  onresize()  λ₯Ό μ‚¬μš©ν•˜λ©΄ λœλ‹€.

처음 λ‘œλ“œλ˜μ—ˆμ„ λ•Œ 화면크기λ₯Ό μΈμ‹ν•˜μ—¬ κ΅¬λΆ„ν•˜λŠ” ν•¨μˆ˜λŠ”  onload()  ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ”λ° 이 ν•¨μˆ˜λŠ” λ‹€μŒ ν¬μŠ€νŒ…μ—μ„œ 닀뀄보겠닀!

λ°˜μ‘ν˜•