[20220928] jQuery

kangsunยท2022๋…„ 9์›” 28์ผ

jQuery

๋ชฉ๋ก ๋ณด๊ธฐ
3/3

14_offset๊ณผ position


โœณ๏ธ ย ํŠน์ •์š”์†Œ์˜ ์œ„์น˜๊ฐ’์„ ์–ป๋Š” ๋ฐฉ๋ฒ• (position, offset์˜ ๊ธฐ์ค€)

โ†ณ position์˜ ๊ธฐ์ค€์  ( <body>ํƒœ๊ทธ ๊ธฐ์ค€)

โ†ณ offset์˜ ๊ธฐ์ค€์  (๋ธŒ๋ผ์šฐ์ € ๊ธฐ์ค€)



id="box" ๋ถ€๋ถ„ ์ž‘์„ฑ

<body>

<style>

๊ฐ€๋กœ๋„ˆ๋น„ : 600px
๋†’์ด : 400px
์œ„์น˜ : ๊ณ ์ •
์™ผ์ชฝ์— : 50%
์œ„์ชฝ์— : 50%
๋ฐ”๊นฅ์ชฝ ์—ฌ๋ฐฑ: ์œ„-200px ์˜ค๋ฅธ์ชฝ0 ์•„๋ž˜0 ์™ผ์ชฝ-300px
๋ฐฐ๊ฒฝ์ƒ‰ : gainsboro

  • margin๊ณผ padding์˜ ์ฐจ์ด ?


    - margin : ๋ฐ”๊นฅ์ชฝ ์—ฌ๋ฐฑ
    - padding : ์•ˆ์ชฝ ์—ฌ๋ฐฑ
  • position: fixed ?

    - ํ™”๋ฉด์„ ์œ„์•„๋ž˜๋กœ ์Šคํฌ๋กคํ•˜๋”๋ผ๋„ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์˜ ํŠน์ • ๋ถ€๋ถ„์— ๊ณ ์ •๋˜์–ด ์›€์ง์ด์ง€ ์•Š๋Š” UI
    - ๋ผ์ด๋ธŒ ์ฑ„ํŒ… ๋ฒ„ํŠผ์„ ๊ตฌํ˜„ํ•  ๋•Œ ๋งŽ์ด ์“ฐ์ด๋Š” ๊ธฐ๋ฒ•



๋ธŒ๋ผ์šฐ์ € ํ™•์ธ





id="child"

<body>

<style>

๊ฐ€๋กœ๋„ˆ๋น„ : 200px
๋†’์ด : 200px
์œ„์น˜ : ์ƒ๋Œ€์ ์œผ๋กœ ๋ฐฐ์น˜ (<dib id="box"> ์œ„์น˜ ๊ธฐ์ค€์œผ๋กœ)
์™ผ์ชฝ์œ„์น˜ : 200px
์œ„์ชฝ์œ„์น˜ : 100px
๋ฐฐ๊ฒฝ: #6cdaff
์ปค์„œ : ํฌ์ธํ„ฐ๋ชจ์–‘
๋ฐ•์Šค๊ทธ๋ฆผ์ž : ์œ„ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ์™ผ์ชฝ, ์œ„ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ์™ผ์ชฝ
  • position: relative ?

    - ์š”์†Œ๋ฅผ ์›๋ž˜ ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ƒ๋Œ€์ (relative)์œผ๋กœ ๋ฐฐ์น˜
  • cursor: pointer ?

    - ๋งˆ์šฐ์Šค ์ปค์„œ์˜ ๋ชจ์–‘์„ ์„ค์ •ํ•ด์ค€๋‹ค.


๋ธŒ๋ผ์šฐ์ € ํ™•์ธ





[jquery] offset()๊ณผ position() ๊ฐ’ #child์— ๋…ธ์ถœ์‹œํ‚ค๊ธฐ

<script>

child๋ฅผ ํด๋ฆญํ•˜๋ฉด ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
offset๋ณ€์ˆ˜์— child์˜ offset ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ณ 
position๋ณ€์ˆ˜์— child์˜ position ๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค.

์•„๋ฌด๊ฒƒ๋„ ๋“ค์–ด๊ฐ€ ์žˆ์ง€ ์•Š์€ msg๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ด์ค€ ํ›„
offset์˜ ์™ผ์ชฝ ์—ฌ๋ฐฑ msg๋ณ€์ˆ˜์— ๋„ฃ์–ด์ฃผ๊ณ 
offset์˜ ์œ„์ชฝ ์—ฌ๋ฐฑ ๊ฐ’์„ msg๋ณ€์ˆ˜์— ๋ˆ„์ 
position์˜ ์™ผ์ชฝ ์—ฌ๋ฐฑ ๊ฐ’์„ msg๋ณ€์ˆ˜์— ๋ˆ„์ 
position์˜ ์œ„์ชฝ ์—ฌ๋ฐฑ ๊ฐ’์„ msg๋ณ€์ˆ˜์— ๋ˆ„์ ํ•ด์„œ

child์˜ msg๊ฐ’์„ html์— ์ถœ๋ ฅํ•œ๋‹ค.

โš ๏ธ point

  • ๋ฆฌํ„ด์ž๋ฃŒํ˜• : ๊ฐ์ฒด (left, top ์†์„ฑ)
    โžก๏ธ ย  left๊ฐ’๊ณผ top๊ฐ’๋งŒ ๋ฐ˜ํ™˜๋œ๋‹ค.

๋ธŒ๋ผ์šฐ์ € ํ™•์ธ

position ๊ธฐ์ค€์ 

โ†ณ position์˜ ๊ฐ’์€ ์ฃผ์–ด์ง„๋Œ€๋กœ ๊ณ ์ •๋˜์–ด ์žˆ๋‹ค.

offset์˜ ๊ธฐ์ค€์ 

โ†ณ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ™•๋Œ€ํ•˜๋ฉด offset๊ฐ’์ด ํฌ๊ธฐ๋งŒํผ ๋ฐ”๋€๋‹ค.
โ†ณ offset์€ ๋ธŒ๋ผ์šฐ์ € ์ „์ฒด์˜ ์™ผ์ชฝ ์œ„๊ฐ€ ๊ธฐ์ค€์ ์ด๋‹ค.


โš ๏ธ point

  • ๊ตณ์ด ์œ„์— position, offset ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  sticky ์†์„ฑ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฌ์›€.

  • position:fixed ์™€ :sticky์˜ ์ฐจ์ด
    * position: fixed
    - ํŽ˜์ด์ง€ ํ™”๋ฉด ๋‚ด ์ ˆ๋Œ€์ ์ธ ์œ„์น˜์— ๊ณ ์ •
    - ์Šคํฌ๋กค๊ณผ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ํ•ด๋‹น ์œ„์น˜์— ๊ณ ์ •
    - fixed๋Š” viewport์— ๊ณ ์ •
    viewport : ํ™”๋ฉด Display์ƒ์˜ ํ‘œ์‹œ ์˜์—ญ
    ex) ์Šคํฌ๋กค๊ณผ ์ƒ๊ด€์—†์ด ๊ณ„์† ์œ„ ์ƒ๋‹จ์— ๊ณ ์ •๋˜๋Š” Header๋“ค์ด fixed ์†์„ฑ์— ํ•ด๋‹น

    * position: sticky
    - ์Šคํฌ๋กค์„ ๋”ฐ๋ผ ์›€์ง์ด๋‹ค ๋‚ด๊ฐ€ ์ •ํ•œ offset์— ๋‹ฟ์œผ๋ฉด ๊ทธ ์ˆœ๊ฐ„๋ถ€ํ„ฐ fixed์ฒ˜๋Ÿผ ๊ณ ์ •
    - ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ถ€๋ชจ element๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์น˜
    - ํ•ด๋‹น ์กฐ์ƒ์˜ ์Šคํฌ๋กค ์œ„์น˜๊ฐ€ ๋„๋‹ฌํ•˜๋ฉด ๊ทธ๋•Œ๋ถ€ํ„ฐ fixed์ฒ˜๋Ÿผ ์ง€์ •ํ•œ ์œ„์น˜์— ๊ณ ์ •๋˜๊ธฐ ์‹œ์ž‘ํ•ด์„œย ํ•ด๋‹น ์กฐ์ƒ์˜ ์œ„์น˜๊ฐ€ ์Šคํฌ๋กค์„ ๋ฒ—์–ด๋‚˜๋ฉด ๊ณ ์ •๋˜๋˜ ์œ„์น˜๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค
    - scroll ๋ฐ•์Šค๊ฐ€ offset ๊ธฐ์ค€
    - top, right, bottom, left ์†์„ฑ์ด ํ•„์ˆ˜
    ex) ๊ฐ๊ฐ์˜ ์ฝ˜ํ…์ธ ๋งˆ๋‹ค ๊ณ ์ •ํ•ด์•ผ ๋˜๋Š” ๋‚ด์šฉ์ด ๋‹ฌ๋ผ์ ธ์•ผ ๋˜๋Š” ๊ฒฝ์šฐ


15_์Šคํฌ๋กค์ด๋™

body

2. CSS

2) #wrap

3) header

(1)

  • body

  • web

โ†ณ ๋กœ๊ณ , box๋ณด๊ธฐ4๊นŒ์ง€ ์ƒ์„ฑ๋จ

(2)

  • css

  • web

โ†ณ css ์ ์šฉ

(3) h1ํƒœ๊ทธ์— ๋“ค์–ด์žˆ๋Š” ๋กœ๊ณ  css

  • css

  • web

(4) #nav

  • css

  • web

  • css

โ†ณ box๋ณด๊ธฐ ๋ฉ”๋‰ด ๊ฐ€๋กœ๋กœ ์ •๋ ฌ

  • web

โœณ๏ธ #nav li.now a

  • jquery

โœณ๏ธ #nav li -> ๋ฉ”๋‰ด๋ฐ•์Šค

โ†ณ ๊ฐ์ฒด๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

โ†ณ box๋ณด๊ธฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด

โ†ณ ๊ฐ์ฒด๊ฐ€ ๋„˜์–ด์˜จ๋‹ค.

* .preventDefault()
โ†ณ box๋ณด๊ธฐ๋ฅผ ๋ˆŒ๋Ÿฌ๋„ ๋งํฌ๋กœ ์ด๋™ํ•˜์ง€ ์•Š๋„๋ก ๋ง‰์•„์ฃผ๋Š” ๊ธฐ๋Šฅ

โœณ๏ธ ์‚ฌ์šฉ์ž๊ฐ€ ํด๋ฆญํ•œ li์š”์†Œ์˜ index ์–ป๊ธฐ

4) content

(1)

  • body

  • css

  • web

(2)

  • css

  • web

โœณ๏ธ ๋ฐ•์Šค top์— ๊ณ ์ •์‹œํ‚ค๊ธฐ

โ†ณ ์—ฌ๊ธฐ #header - height:122px์„ ๋นผ๊ณ  ์—ฌ๋ฐฑ์„ ์ค˜์•ผํ•œ๋‹ค.

โ†ณ Box2๋ฒˆ์€ 722์—์„œ 122๋ฅผ ๋นผ๋ฉด top์— ๊ณ ์ •์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

โœด๏ธ jquery

โœณ๏ธ ๊ฐ id=box1~box5์˜ ์œ—์ชฝ ์—ฌ๋ฐฑ ํ™•์ธ ํ›„ ๋ณ€์ˆ˜์ฒ˜๋ฆฌ

โ†ณ ์œ„์ชฝ ์—ฌ๋ฐฑ pxํ™•์ธ
โ†ณ #box(n)์˜ n์„ ๋ณ€์ˆ˜์ฒ˜๋ฆฌ


โœณ๏ธ ์Šคํฌ๋กค ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ฒ˜๋ฆฌ

โ†ณ scrollTop:bTop-122

  • -122๋Š” id=box1์˜ ์—ฌ๋ฐฑ์„ ์œ„์—์„œ ํ™•์ธ ํ›„ ๊ทธ ๊ฐ’์„ ๋นผ์ฃผ๋ฉด box2,3,4,5 ๊ฐ’์ด top์œผ๋กœ ๊ณ ์ •๋œ๋‹ค.
  • 300์€ ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ์‹คํ–‰์†๋„ ๊ฐ’



์›นํŽ˜์ด์ง€ ์†Œ์Šค๋ฅผ ์˜คํ”ˆํ•˜๋ ค๋ฉด

โ†ณ I๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ๋กœ๋Š” ๋‚˜๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

โ†ณ ๊ฒฝ๋กœ๋ฅผ http:// ํ”„๋กœํ† ์ฝœ๋กœ ์‹œ์ž‘ํ•ด์•ผ ๊ณต๊ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

vscode ์—์„œ

  • live server ๋ฅผ ๋ฐ›์œผ๋ฉด ์ฝ”๋”ฉ์„ ํ•˜๋ฉด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

  • live server ์„ค์น˜
    File โ†’ Open Folder โ†’ jQuery ํด๋” ์„ ํƒ
    ํ•ด๋‹น ํŒŒ์ผ ์šฐํด๋ฆญ โ†’ Open with Live Server

โ†ณ liver server๋กœ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด ๊ฒฝ๋กœ๊ฐ€ 127.0.0.1๋กœ ์‹œ์ž‘ํ•˜๊ฒŒ ๋œ๋‹ค.

โœ… ์—๋Ÿฌ: ์ง€๊ธˆ ์ด ํŽ˜์ด์ง€๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์›นํŽ˜์ด์ง€์— ์—ด๋ฆฌ์ง€ ์•Š์„ ๊ฒฝ์šฐ

File โ†’ Preferenced โ†’ Settings โ†’ live server ๊ฒ€์ƒ‰
โ†’ Live Server โ†’ Settings: Use Local lp ์ฒดํฌํ‘œ์‹œ
Us Local IP as host

โœ… ํฌ๋กฌ์œผ๋กœ ์—ฌ๋Š” ๋ฐฉ๋ฒ•
https://yongku.tistory.com/entry/vscode%EC%97%90%EC%84%9C-live-server-%ED%81%AC%EB%A1%AC%EC%9C%BC%EB%A1%9C-%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

  • ํฌํŠธ๋ฒˆํ˜ธ : ์ •ํ•ด์ง„ ์‚ฌ๋žŒ๋งŒ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฒˆํ˜ธ


==> 15_์Šคํฌ๋กค์ด๋™ ๊ธ€ ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•จ..
  1. header
    - bodyํƒœ๊ทธ
    - css
    - jquery

  2. content
    - bodyํƒœ๊ทธ
    - css
    - jquery

  3. footer
    - bodyํƒœ๊ทธ
    - css
    - jquery

  4. topBtn
    - bodyํƒœ๊ทธ
    - css
    - jquery

  • ๊ทธ๋ƒฅ ๊ฒŒ์‹œํŒ
  • ์ฒจ๋ถ€ํŒŒ์ผ ๊ฒŒ์‹œํŒ
  • ๋Œ“๊ธ€ ๊ฒŒ์‹œํŒ mybatis

๐Ÿ“Œ 16_ajax

โœด๏ธ ๋ฐฐ์šฐ ๋ชฉ๋ก ๋ณด์—ฌ์ฃผ๊ธฐ

  • Ajax = ๋Œ“๊ธ€ ๋”๋ณด๊ธฐ ์ƒ๊ฐํ•˜๋ฉด ๋จ

1. ์ค€๋น„

โ†ณ actor.jason ํŒŒ์ผ jQueryํด๋”์— ์ €์žฅํ•˜๊ธฐ
-------------------> I:\java202207\frontend\jQuery

โ†ณ loader.gif ํŒŒ์ผ jQueryํด๋”์— ๋„ฃ๊ธฐ
----------------> I:\java202207\frontend\jQuery

2. loder div ์ƒ์„ฑ ํ›„ css style ์†์„ฑ ์ฃผ๊ธฐ

โ†ณ ์ „์ฒดํ™”๋ฉด์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

1) ์ฒ˜์Œ์—” ์ˆจ๊ธฐ๊ธฐ

3. ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญํ•˜๋Š” ๋ฒ„ํŠผ + ๋‚จ์ž๋ฐฐ์šฐ ๋ชฉ๋ก ํ…Œ์ด๋ธ” ์ƒ์„ฑ

1) loader ์ด๋ฏธ์ง€ ๋ณด์—ฌ์คŒ

  • jquery

โœ… ํ”„๋ก ํŠธ๋Š” ์ด๋ฒคํŠธ๊ฐ€ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

2) ์„œ๋ฒ„์— ์š”์ฒญํ•ด์„œ ์‘๋‹ต๋ฉ”์„ธ์ง€ ๋ฐ›์•„์˜ค๊ธฐ(๋Œ“๊ธ€ ๋”๋ณด๊ธฐ ๋“ฑ)

  • jquery โ†’ ajax ์‚ฌ์šฉ

โ†ณ "actors.json" ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์™€์„œ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ์„ ๋•Œ์™€ ์ œ๋Œ€๋กœ ์ž‘๋™์„ ํ–ˆ์„ ๋•Œ์˜ ์ƒํ™ฉ์„ ๋ชจ๋‘ ์ ์–ด์ค€๋‹ค.
error:function(error)
=key:value

โ†ณ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•œ ํ™”๋ฉด
[object Object],[object Object],[object Object]

โ†ณ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ์„ ๊ฒฝ์šฐ ํ™”๋ฉด
[object Object]

3) ๊ธฐ์กด์˜ <tbody>๊ฐ’์„ ์ „๋ถ€ ์ง€์›€

4) table์˜ tbody๊ฐ’ ์ˆ˜์ •

(1) ํ˜„์žฌ ๋“ค์–ด๊ฐ€์žˆ๋Š” ๊ฐ’๋“ค ํ™•์ธ

โ†ณ ๊ฐ’์ด ์—†์Šต๋‹ˆ๋‹ค. ์—์„œ ์†ก๊ฐ•ํ˜ธ, ์ •์šฐ์„ฑ, ์ด์ •์žฌ ๊ฐ’์ด ๋“ค์–ด๊ฐ.

+ ์ •์šฐ์„ฑ 185 75 ์ด์ •์žฌ 177 85 ๋„ ๋‚˜์˜ด.

(2) ๊ฐ’ ์ˆ˜์ •

5) ๋กœ๋”ฉ๋˜๊ณ  ์žˆ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์„œ์„œํžˆ ์ˆจ๊น€

โ†ณ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ!!์„ ํด๋ฆญํ•˜๋ฉด ๋ฐฐ์šฐ์˜ ๊ฐ’์ด ๋“ค์–ด๊ฐ€๊ณ  ๋กœ๋”ฉ์ด ๋  ๋•Œ ๊นŒ์ง€ ์ด๋ฏธ์ง€๊ฐ€ ๋ณด์—ฌ์กŒ๋‹ค ์‚ฌ๋ผ์ง.

โœ… .empty()๋ฅผ ์ง€์šฐ๋ฉด ? ?

โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“โ†“

โ†ณ ๊ฐ’์ด ๋ˆ„์ ๋˜์–ด ๋ณด์—ฌ์ง€๊ฒŒ ๋œ๋‹ค.(๋”๋ณด๊ธฐ ๋Œ“๊ธ€๊ณผ ๊ฐ™์€ ๋งฅ๋ฝ์ž„)


๐Ÿ“Œ 17_ajax

โœด๏ธ JSON ๋ฐ์ดํ„ฐ ๋ฐ›์•„์˜ค๊ธฐ

  • ์„ฑ๊ณตํ–ˆ์„ ๋•Œ

    • alert("SUCCESS~~");
    • alert(result); //์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•ด์ค€ ๊ฐ์ฒดํ˜•ํƒœ์˜ ๋ฉ”์„ธ์ง€
    • alert(status); //์‘๋‹ต์ƒํ™ฉ
    • alert(xhr); //XMLHttpRequest ๊ฐ์ฒด
  • ์‹คํŒจํ–ˆ์„ ๋•Œ

    • alert("ERROR!!");
    • alert(xhr); //XMLHttpRequest ๊ฐ์ฒด
    • alert(status); //์‘๋‹ต์ƒํ™ฉ
    • alert(error); //Not Found

์˜ค๋А๋ฃฌ~ ์š”๊ท€๊นŒ์ฅ!

profile
์ฝ”๋”ฉ ๊ณต๋ถ€ ๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€