inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Bắt đầu phát triển web tương tác đúng cách

Hoạt hình 2

paused를 했을 때

188

kthkth382713

1 câu hỏi đã được viết

0

박스에 마우스를 올리면 멈춤과 동시에 크기가 커지게 하고 싶은데 마우스를 올리면 멈추기만하고 상자의 크기에 변화가 없어요ㅠㅠ 뭐가 걸리는게 있는 것 같은데 머릿속에서 감만 잡히고 구체적인 답을 못찾겠습니다ㅠㅠㅠ

    .box:hover {

      animation-play-state: paused;

      transform-origin: 30% 80%;

      transform: scale(1.3);

    }

어떻게하면 마우스를 박스위에 올렸을 때 멈추면서 크기가 커지게할 수 있고, 위의 코드에서 잘못된점이 무엇인지 알려주세요! ( transform-origin: 30% 80%;을 지웠을 때도 그대로에요)

javascript 인터랙티브-웹 HTML/CSS

Câu trả lời 1

1

ODeorain


일단 작성하신 코드에서 keyframes 안에도 transform:translate(값) scale(1); 하시고
.box:hover{transform:translate(값) scale(1.3); } 이런식으로 해주셔야 css 자체 충돌이 나지 않아요.
그치만 테스트를 해보니 역시 되지 않네요 ㅎㅎ
혹시나 해서 자바스크립트로 현재 translate의 값을 가져와서 강제로 반영시키면 되지 않을까 해서 해봤지만... 그래도 동작하지 않네요.
아마 animation-play-state를 pause시키면 keyframes 안에 정의된 속성들은 후에 아무리 몇번이고 선언해도 강제로 멈춰버리는것 같아요.

만일 정말로 마우스를 올렸을 때 1) 움직임을 멈추고 2) 크기는 키우고 싶으시다면

keyframes에서 움직이는걸 left, top값으로 하고, hover시 transform scale 값 주기
또는
keyframes에서 움직이는걸 transform의 translate 값으로 하고, hover시 width height 변화 주기 

둘중에 하시면 될 것 같아요.

다음은 1번으로 진행한 예제입니다.
background 색이 변하다 마는거 보시면 바로 이해하실거에요

<!DOCTYPE html>
<html lang="ko">
<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>마우스 올리면 멈추고 커짐</title>
<style>
    *{margin:0;padding:0;box-sizing:border-box;}
    html,body{width:100%;height:100vh;overflow:hidden;}

    #myDiv{
        position:fixed; display:flex; justify-content:center; align-items:center;
        width:200px;height:200px; background:yellow; border:2px solid black;
        animation:moveBox 3s linear infinite alternate;
        transition:transform .5s;
    }

    @keyframes moveBox {
        0%{left:0;top:0;}
        50%{left:50%;top:0;}
        100%{left:50%;top:50%; background:coral;}
    }

    #myDiv:hover{
        animation-play-state:paused;
        transform:scale(2); color:white;
        background:black; /* keyframes 안의 속성들은 제대로 작동하지 않습니다. */
    }
   
</style>
</head>
<body>
    <div id="myDiv">HELLO WORLD</div>
</body>
</html>

왼쪽/오른쪽 동작시 딜레이 문제

0

96

1

변수 범위 관련 질문

0

108

1

perspective 문의

0

104

1

생성자 함수를 클래스 함수로 변경 하고 this 오류 관련

0

150

1

스크롤이 중간 위치에 있을 때 창의 크기를 변환하면 생기는 문제

0

127

1

animation이벤트 질문이요!

0

72

1

resize handler에서 질문이 있습니다.

0

111

1

카드 뒤집힐 때 F가 보인 이유

0

150

1

3d 뒤집기 추가효과

0

219

1

전진! 3D 스크롤 21 강의 질문

1

171

1

eventlistener 질문

0

150

1

zMove 를 1000으로 설정하는 이유에 대하여.

0

169

1

[정보-23강] ES6 class 문법으로 공부하시는 분들!! 화살표 함수로도 시도해보셔요!

1

192

1

동적으로 html 생성 후 이벤트 위임 질문 있습니다.

0

268

1

rotateY()에서 deg에 따른 차이

0

198

1

코드 작성 순서

0

276

1

이미지가 없는데 첨부파일을 다운 받는 방법이 있나요??

1

396

1

'이벤트 위임 보강 영상'에 있는 예제 html이 안 보입니다

0

265

2

섹션5 자바스크립트 이벤트 다루기 질문

1

243

1

[#전진! 3D 스크롤 11] mousePos 공식 질문 있습니다!

0

424

2

css 는 직접 작성을 해야하는걸까용?

0

327

1

translateZ 에 px 이 아닌 vw 로 값을 주신 이유가 있을가요?

0

363

2

house 부분에도 width , height 부분을 꽉 차게 주신 부분이 제가 이해한게 맞는지 궁금합니다.

0

306

2

left:-400vw 가 아닌 translateZ(100vw); 을 입력하신 이유가 궁금합니다.

0

309

2