2013-07-21 4 views
1

I는 사용자가 창 (body 요소) 가리키면 애니메이션을 트리거하는 디자인과 같이 있습니다body : hover가 적용되는 곳은 어디입니까?

body:hover .block1 { 
width: 210px; 
transition: width .2s; 
} 

.block1는 위치 가지고 절대 특성, 및 컨테이너의 내부 (절대적). position : relative를 가진 다른 div (.parent)가 페이지에 있습니다. 따라서 .container와 .parent라는 두 개의 주요 div가 있습니다.

본문 위로 마우스를 가져 가면 애니메이션이 시작됩니다. 그러나 특정 부분 위로 마우스를 가져 가면 예를 들어 컨테이너의 오른쪽 가장자리 나 2div 사이에 애니메이션이 멈 춥니 다. 몸에 붙어있는 "마우스 오버"로 읽히지 않습니다. 페이지 주위의 일부 작은 공간 (무작위로 보이는 것)에만 있습니다. 여기서 무슨 일이 일어나고있는거야?

+0

당신은 바이올린을 게시 할 수 있습니까? – user2580076

+0

마우스가 호버 밖으로 나왔을 때 마우스 오버의 속성을 유지 하시겠습니까? –

+0

다음은 코드의 샘플입니다. http://dabblet.com/gist/6048160 .container div 아래에서 .parent div가 애니메이션을 트리거하지 않는 것에 유의하십시오. 나는 이미 바디 마진과 패딩을 0으로 설정했다. –

답변

0

하나씩 "작동하지 않는"모든 요소에 애니메이션을 적용하거나 * 선택기를 사용하십시오. 당신 때문에 아직없는 '호버'에서 블록 1 애니메이션 정류장에서 마우스를 이동

1

이 상황에 대한 솔루션에만 자바 스크립트

$(".block1").mouseenter(function() { 
     $(this).addClass('active') 
}).mouseleave(function() { 
// you can enter code here if the mouse out of the .block1 
}); 

CSS를

입니다
.active { 
width: 210px; 
transition: width .2s; 
} 
+0

나는이 게시물에 언급하는 것을 잊었다는 순수한 CSS를해야합니다. 그리고 내 실제에서는 애니메이션이 실제 div 위로 마우스를 가져갈 때만 작동한다는 것을 알았습니다 (처음에는 눈치 채지 못했기 때문에 큰 페이지이므로 많은 부분을 다루었습니다). –

+0

'hover'는 모든 페이지가 본문이므로 hover는 나쁜 생각입니다. 특정 div 사용을 원하면 hover {} (hover가 ie6에서는 작동하지 않지만 현재는 아무런 조치도 취하지 않음을주의하십시오. 인터넷 익스플로러 6에 관하여 –

관련 문제