[πŸ’»] μ‹€μŠ΅ - λ§₯뢁

J-silverΒ·2022λ…„ 10μ›” 26일

web-project

λͺ©λ‘ 보기
16/18
post-thumbnail

πŸ“– Overview

μ‚¬μ΄νŠΈλͺ…: λ§₯뢁
μž‘μ—… κΈ°κ°„: 6.5일 μ†Œμš”
라이브러리: swiper, jQuery
μœ ν˜•: λ°˜μ‘ν˜•, 클둠 μ½”λ”©
참여도: 100%

πŸ‘€ Check-point

  • λ°˜μ‘ν˜•μ‹œ 였λ₯˜κ°€ μ—†λŠ”κ°€
  • 곡톡 클래슀λͺ…μœΌλ‘œ μ»¨νŠΈλ‘€ν•˜κΈ° μ‰½κ²Œ μž‘μ—…ν–ˆλŠ”κ°€
  • μŠ€ν¬λ‘€μ— λŒ€ν•œ 이벀트처리

곡톡 클래슀λ₯Ό 주둜 μ“°λŠ” mac

κ³΅ν†΅μœΌλ‘œ κΎΈλ°€λ•ŒλŠ” μ˜μ—­μ— κ°€μ„œ μ’Œν‘œλ₯Ό μž‘λŠ”κ²Œ μ’‹λ‹€.

πŸ“Œ favicon μΆ”μΆœλ²•

  1. νŽ˜μ΄μ§€ μ†ŒμŠ€μ—μ„œ favicon검색 ν›„ μΆ”μΆœ

  2. μ ˆλŒ€μ£Όμ†Œ μΆ”μΆœ

  • 가끔 νŽ˜μ΄μ§€ μ†ŒμŠ€μ—μ„œ λ‚˜μ˜€μ§€ μ•ŠλŠ” κ²½μš°κ°€ μžˆλ‹€.
    https://μ£Όμ†Œ/favicon.icoλ₯Ό μ‚¬μš©ν•΄μ£Όλ©΄ λœλ‹€.

πŸ“Œ λΉ„λ””μ˜€ νƒœκ·Έ μ“°λŠ”λ²•

[ video νƒœκ·Έ ] HTML5둜 λ™μ˜μƒ λ„£λŠ” 방법. 이 κΈ€ ν•˜λ‚˜λ©΄ λͺ¨λ“  κ³ λ―Ό 끝!

<video autoplay muted class="video">
    <source src="https://www.apple.com/105/media/us/macbook-air-m1/2022/648bb92f-0bb4-452c-bfbc-2898641b22f5/anim/hero/large.mp4" type="video/mp4">
</video>
  • muted - μŒμ†Œκ±°
  • autoplay - μžλ™μž¬μƒ
  • type - video
  • λΉ„λ””μ˜€λŠ” ν˜„μž¬ λ‚΄ ν™”λ©΄μ—μ„œλ§Œ μž¬μƒ λ˜λ‹ˆκΉŒ 제이쿼리 μ•ˆκ±Έμ–΄μ€˜λ„ λœλ‹€!
  • ν˜„μž¬ λ‚΄κ°€ λ³΄κ³ μžˆλŠ” 화면에 λ„λ‹¬ν•΄μ•Όμ§€λ§Œ ν”Œλ ˆμ΄ λ˜λŠ” μ„±μ§ˆμΈ μ• λ‹€!

λ°˜μ‘ν˜•μ‹œ br이 ν•„μš”ν• λ•Œ display:none , blockμ²˜λ¦¬ν•΄μ£Όλ©΄λœλ‹€.



πŸ“Œ Animation

✏ μˆœμ„œ

div {
    animation: rgy 5s ease-in 1s infinite alternate forwards paused;
}

μˆœμ„œν—·κ°ˆλ¦¬μ§€ 말기
name > duration > timing-function > delay > count > direction > fill-mode > play-state

μ• λ‹ˆλ©”μ΄μ…˜ 이름 > μž¬μƒ μ‹œκ°„(μ‹€ν–‰ 속도) > 속도 곑선 νƒ€μž… > λ”œλ ˆμ΄ μ‹œκ°„ > 반볡 횟수 >Β Β μ§„ν–‰ λ°©ν–₯ > μ’…λ£Œ ν›„ μœ„μΉ˜ > μ‹€ν–‰orμ •μ§€


✏ background-clip

제이쿼리λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  κΈ€μžκ°€ μ±„μ›Œμ§ˆμˆ˜ μžˆλ‹€!

λ‚΄κ°€ μ£Όλ €λŠ” κΈ€μžμ— animation,text-fill-color,background-clip ν•„μˆ˜!

text-fill-color - κΈ°μ‘΄ ν…μŠ€νŠΈ 색

background-clip - μ‚¬μš©ν•˜λ €λŠ” μš”μ†Œμ˜ 색을 어디에 λ‘λ €λŠ”μ§€

.content.battery .headline{
    animation: battery 1.5s linear forwards;

    background: linear-gradient(to top, #4cd265 50%, #fff 50%);
    background-size: auto 200%;
    -webkit-background-clip: text;
    background-clip: text;
    /* text-fill-color: transparent; */
    -webkit-text-fill-color: transparent; /*투λͺ…*/
}

πŸ“Œ 곡톡 클래슀

μ•ˆλ‹€λ₯΄μ—μ„œλ„ 곡톡 클래슀λ₯Ό μ΄μš©ν•˜μ—¬ μ‰½κ²Œ μ»¨νŠΈλ‘€μ„ μ—°μŠ΅ν–ˆμ§€λ§Œ λ‚΄κ°€ μ‚¬μš©μ„ 잘 μ•ˆν•¨ + λ„ˆλ¬΄ λ§Žμ€ 곡톡 클래슀둜 인해 ν—·κ°ˆλ¦¬κ²Œ λ˜μ—ˆλ‹€.

80* headline-super
56* headline-medium

32* desc-super
28* desc-large
19* desc-medium

21* title-normal 

-μ–΄λ ΅κ²Œ μƒκ°ν•˜μ§€ μ•ŠκΈ°-

  1. 자주 μ“°μ΄λŠ” 폰트 μ‚¬μ΄μ¦ˆλ₯Ό 적어보고 μžμ£Όμ“°μ΄λŠ” μ• λ“€ν•œν…Œ 클래슀 이름을 μΆ”κ°€ν•΄ μ€€λ‹€.
  2. μ€‘λ³΅λ˜λŠ” font-weight, line-height도 같이 적어쀀닀
.headline-super{
    font-size: 80px;
    line-height: 1.15;
    font-weight: 700;
}

πŸ€” β†’ μ™œ λ³€μˆ˜ (var)둜 μ•ˆμ“°κ³  클래슀둜 μ£Όλ‚˜μš”??

ν΄λž˜μŠ€κ°€ μ’€ 더 κ°„νŽΈν•˜κ³  각각 계속 μ€˜μ•Όν•˜λŠ”κ²Œ λ§Žμ€λ° varλŠ” cssκΉŒμ§€ κ°€μ„œ μ€˜μ•Όν•œλ‹€.(κ°€λ‚΄ μˆ˜κ³΅μ—…)



πŸ“Œ 곡톡 css - gap을 μ•ˆμ£Όκ³  μ“°λŠ”λ°©λ²•

✏ μ„ νƒμž

.section .content-wrapper > * + *{margin-top: 24px;}

β†’ .section .content-wrapper의 μ§κ³„μžμ‹μ€‘ 전체애듀쀑에 첫번째 μš”μ†ŒλΉΌκ³  μ „μ²΄μ• λ“€ν•œν…Œ {margin-top: 24px;} 을 μ€€λ‹€.

근데 μ™œ .content-wrapperμ•ˆμ— .content둜 μž‘μ§€ μ•Šκ³  *μ„ νƒμžλ₯Ό μΌμ„κΉŒ?

β†’ .content-wrapperμ•ˆμ—λŠ” .contentκ°€ μ•„λ‹Œ λ‹€λ₯Έμš”μ†Œλ„ μžˆκΈ°λ•Œλ¬Έμ—

  • μ„ νƒμž μ„€λͺ…이 μ΄ν•΄μ•ˆλœλ‹€λ©΄?

κΌ­ μ•Œμ•„μ•Όν•˜λŠ” μ„ νƒμž

:not(μ„ νƒμž)

.content.gpu > *:not(.video-area){z-index: 1;}

λ‚΄κ°€ μ„ νƒν•˜λ €λŠ” .content.gpu에 μΈμ ‘ν•œ 전체 애듀쀑에 .video-areaλΉΌκ³ (μ•„λ‹Œμ• λ“€μ€) λ‹€ z-index: 1 쀘라



πŸ“Œ flex만이 κ°€λŠ₯ν•œ λΉ„μœ¨κ³„μ‚°!

μ»¨ν…μΈ λ“€μ˜ 등뢄을 λ¬Άμ–΄μ€„λ•Œ col-2,col-3λ“±μœΌλ‘œ λ‚˜λˆ μ€€λ‹€.

.grid-box .col-8{width: 80%;} μ ˆλ°˜λ³΄λ‹€ 살짝 큰 λΉ„μœ¨μ€ 80% 
.grid-box .col-6{width: 60%;} μ ˆλ°˜μ€ 60%
.grid-box .col-4{width: 40%;} μ ˆλ°˜λ³΄λ‹€ 살짝 ν°μž‘μ€ λΉ„μœ¨μ€ 40%

πŸ€” μ™œ 이런 νΌμ„ΌνŠΈκ°€ λ‚˜μ™”μ„κΉŒ?

β†’ κΈ°μ‘΄ μ• ν”Œ mac에선 κ·Έλ¦¬λ“œλ‘œ 12등뢄을 해놨닀.
λ‚œ flex둜 μ‚¬μš©ν–ˆμŒμœΌλ‘œ κ·Έ λΉ„μœ¨μ„ λ§žμΆ”κΈ° μœ„ν•΄ 전체가 120%라고 생각 ν•˜κ³  μ•Œμ•„μ„œ 계산해쀀닀!

πŸ’‘ μ£Όμ˜ν• μ  - 120%λŠ” μ‹€μ§ˆμ μœΌλ‘œ μ‚¬μš©ν•  수 μ—†λŠ” %이닀. 80%+40%κ°€ 120%여도 flexλŠ” 총 합이 100%라고 μƒκ°ν•œλ‹€.

flex: 1은 반으둜 λ‚˜λˆ  μ€€λ‹€λŠ”κ²Œ μ•„λ‹ˆλΌ 1λŒ€1 둜 λ§Œλ“€μ–΄μ€€λ‹€.


πŸ“Œ μ• λ‹ˆλ©”μ΄μ…˜ μ‹œμž‘,멈좀

animation-play-state: paused; β†’ 멈좀

animation-play-state: running; β†’ μ‹œμž‘


✏ animation steps(1)

μŠ€ν¬λ‘€μ‹œ 이미지가 λΆ€λ“œλŸ½κ²Œ λ°”λ€Œκ²Œ 해야함

μ²˜μŒμ—λŠ” gsapλ₯Ό μ¨μ„œ μž‘μ—…ν–ˆμœΌλ‚˜ μŠ€ν¬λ‘€μ‹œ μˆœμ‹κ°„μ— μ‚¬λΌμ§€λŠ” 였λ₯˜ λ°œμƒ

μ΄λŸ°μ‹ X

.to('.content.security .img-area',{
        'animation-delay': -72
    },'a')

각 μ΄λ―Έμ§€μ˜ μ’Œν‘œλ₯Ό μ• λ‹ˆλ©”μ΄μ…˜μœΌλ‘œ λ§Œλ“€μ–΄λ‘κ³  μŠ€ν¬λ‘€μ„ λλƒˆμ„λ•Œμ˜ μ• λ‹ˆλ©”μ΄μ…˜ λ”œλ ˆμ΄λ₯Ό gsap에 λ„£μ–΄μ€€λ‹€.

gsap νŠΈλ¦¬κ±°μ— scrub(λΆ€λ“œλŸ½κ²Œ) ν•„μˆ˜

animation: unlock 6s steps(1) forwards; 
animation-duration: 72s; 
animation-iteration-count: initial; /*λ¬΄ν•œλ°˜λ³΅ */
animation-play-state: paused;
animation-delay: 0s; /*처음 μ‹œμž‘μž‰λ‹ˆκΉŒ*/

μ—¬κΈ°μ„œ κ°€μž₯ μ€‘μš”ν•œ ν¬μΈνŠΈλŠ” steps(1) 각 ν•˜λ‚˜μ”© μ΄λ™ν•˜λŠ” 것 κ°™μŒ 이걸 μ‚¬μš©ν•˜λ©΄ λΆ€λ“œλŸ½κ²Œ μ—°κ²°λœλ‹€.
μ• λ‹ˆλ©”μ΄μ…˜μ„ 연속적인 μ „ν™˜μ΄ μ•„λ‹ˆλΌ λŠμ„ 수 μžˆλŠ”μ• λ‹€.





μ˜€λ‹΅βœ(β—”β—‘β—”)✧

✏ backdrop-filter

μš”μ†Œ λ’€ μ˜μ—­μ— νλ¦Όμ΄λ‚˜ 색상 μ‹œν”„νŠΈ λ“± κ·Έλž˜ν”½ 효과λ₯Ό μ μš©ν•  수 μžˆλŠ” 속성

✏ λ°˜μ‘ν˜•μΌλ•Œ

λͺ¨λ°”μΌμ—μ„œλ§Œ λ³΄μ΄λŠ”μ• λ“€μ€ λ”°λ‘œ 클래슀λ₯Ό μ£ΌλŠ”κ²Œ μ’‹λ‹€.

ex) mobile-visible, mobile-show….


✏ alt에 μ„€λͺ…이 μ—†λ‹€λ©΄, μ œκ³΅λ˜λŠ” 이미지가 μ•„λ‹ˆλΌ κ·Έλƒ₯ λ””μžμΈμ΄λ‹€

  • λ‚œ μ˜λ―ΈμžˆλŠ” 이미지라 μƒκ°ν•˜μ—¬ β€˜λŸ°λ‹ν•˜λŠ” μ‚¬λžŒμ΄λ―Έμ§€β€™λ“±λ“±μœΌλ‘œ ν‘œν˜„ν•˜μ˜€μœΌλ‚˜
    β†’ κ·ΈλŸ΄ν•„μš”μ—†μ—ˆμŒ!
  • μ„€λͺ…이 ν•„μš”μ—†μœΌλ©΄ alt에 μ“°μ§€ μ•Šμ•„λ„ λœλ‹€.
    β†’ μ™œλƒ! 리더기에 μ½νžˆμ§€ λ§μ•„μ•Όν•˜λ‹ˆκΉŒ
  • background-img둜 해도 λ¬΄κ΄€ν•˜λ‹€!

✏ background둜만 이미지λ₯Ό κΎΈλ―Έκ³  μ‹Άμ„λ•Œ λ§ˆν¬μ—…

<figure class="img-area"></figure>
  • 😎 figureκ°€ λ­”μ§€ ν˜Ήμ‹œλ‚˜ κΈ°μ–΅μ•ˆλ‚œλ‹€λ©΄???
    μ˜λ―Έμ—†λŠ”μ• !!!

μž₯점 β†’ λͺ¨λ°”μΌμ˜μ—­, λ°˜μ‘ν˜•ν• λ•Œ 이미지 ꡐ체가 쉽닀!

πŸ€” mac background이미지 μ‚¬μ΄μ¦ˆκ°€ λ°˜μ‘ν˜•λ§ˆλ‹€ λ‹€ λ‹¬λΌμš”

β†’ κ·Έ μ‚¬μ΄μ¦ˆλ§ˆλ‹€ 졜적의 ν™”μ§ˆμ— 맞게 μ œμž‘λ˜μ–΄μžˆκΈ° λ•Œλ¬Έμ—!!!
λ°˜μ‘ν˜•μ— λ”°λ₯Έ 이미지 λ³€κ²½ν•˜κΈ°


✏ λ ˆμ΄μ•„μ›ƒ

gridλ₯Ό μ‚¬μš©ν–ˆλ‹€λ©΄ μ‰½κ²Œ λ ˆμ΄μ•„μ›ƒμ„ 맞좜수 μžˆμ§€λ§Œ flexλ₯Ό μ΄μš©ν–ˆλ‹€λ©΄ 높이λ₯Ό 맞좰주고 λΉˆμΉΈμ„ λ§Œλ“€μ–΄ μ£Όλ©΄ λœλ‹€.

λ§ˆμ°¬κ°€μ§€λ‘œ flexλ₯Ό μ΄μš©ν–ˆμ„μ‹œ ν•œμ€„λ§ˆλ‹€ ν•˜λ‚˜μ”© λ¬Άμ–΄λ²„λ¦¬μž!

  • 총5개의 μ˜μ—­μœΌλ‘œ λ§Œλ“€μ–΄ μ€˜μ•Όν•œλ‹€
  • 5개둜 μž‘μ•„μ•Ό λ§žλŠ”κ±°μž„ β†’ λ°˜μ‘ν˜•μΌλ•ŒλŠ” disply-block이면 λ˜λŠ”κ±°μž„
profile
λ‹¬λ¦¬λŠ” 거뢁이

0개의 λŒ“κΈ€