페이지가로드 된 후 5 초 후에 요소를 숨길 수 있습니까? a jQuery solution이 있다는 것을 알고 있습니다.CSS 5 초 후 요소 자동 숨기기
나는 똑같은 일을하고 싶지만 CSS 전환으로 같은 결과를 얻기를 바란다.
혁신적인 아이디어가 있습니까? 또는 CSS 전환/애니메이션의 한계를 넘어서 묻는 것입니까?
페이지가로드 된 후 5 초 후에 요소를 숨길 수 있습니까? a jQuery solution이 있다는 것을 알고 있습니다.CSS 5 초 후 요소 자동 숨기기
나는 똑같은 일을하고 싶지만 CSS 전환으로 같은 결과를 얻기를 바란다.
혁신적인 아이디어가 있습니까? 또는 CSS 전환/애니메이션의 한계를 넘어서 묻는 것입니까?
하지만 애니메이션 또는 다른에 의존하려는 속성 주위에 전환 생성 (예 : display
또는 변경 차원을하고 overflow:hidden
로 설정) 어차피 때문에, 당신은 즉시 생각할 수있는 방법으로 그것을 할 수있는 요소를 정확하게 숨기고 가시적 인 공간을 차지하지 못하게하십시오.
따라서 문제의 요소에 대한 애니메이션을 만들고 5 초 후에 visibility:hidden;
을 간단히 전환하고 높이와 너비를 0으로 설정하여 요소가 DOM 흐름에서 여전히 공간을 차지하지 않도록합니다.
CSS
html, body {
height:100%;
width:100%;
margin:0;
padding:0;
}
#hideMe {
-moz-animation: cssAnimation 0s ease-in 5s forwards;
/* Firefox */
-webkit-animation: cssAnimation 0s ease-in 5s forwards;
/* Safari and Chrome */
-o-animation: cssAnimation 0s ease-in 5s forwards;
/* Opera */
animation: cssAnimation 0s ease-in 5s forwards;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
@keyframes cssAnimation {
to {
width:0;
height:0;
overflow:hidden;
}
}
@-webkit-keyframes cssAnimation {
to {
width:0;
height:0;
visibility:hidden;
}
}
HTML 물론
<div id='hideMe'>Wait for it...</div>
니스! 방금 키 프레임을 추천하려고했습니다. +1! – Albzi
왜 불투명도를 애니메이트하지 않습니까? 'opacity : 1' to 0 – Radian
작동하지만 질문에 대답이 있습니다. @keyframe과 @ -webkit-keyframes 만 포함되었으므로 -moz 및 -o 없이도 괜찮은지 궁금합니다. 그냥 또 다른 질문입니다. 그리고 나는 그것이 단지 5 초를 기다리고 애니메이션없이 즉시 요소를 숨긴다는 것을 알았습니다. 나는 당신이 당신의 대답에 페이드 아웃 전환 부분을 포함시키는 것이 좋을 것이라고 생각합니다. – Alfred
당신이 바로 전환을 트리거하는 클래스 또는 무언가를 변경하는 setTimeout
를 사용할 수 있습니다.
HTML :
<p id="aap">OHAI!</p>
CSS :
p {
opacity:1;
transition:opacity 500ms;
}
p.waa {
opacity:0;
}
JS 부하 또는 DOMContentReady에서 실행 :
setTimeout(function(){
document.getElementById('aap').className = 'waa';
}, 5000);
답변 해 주셔서 감사합니다. 그러나 자바 스크립트를 전혀 사용하지 않으려 고합니다. javascript 또는 jQuery를 사용하고 싶다면 내 질문에 포함 된 jQuery 솔루션을 사용할 수 있습니다. 어쨌든 고마워. – Alfred
[jQuery는 원격으로 자바 스크립트의 동의어가 아닙니다] (http://meta.stackexchange.com/a/19492/219504). 당신은 jQuery에 내장 된 변환을 사용하지 않는 솔루션을 요청했고 순수한 CSS 전환과 일반적인 Javascript 한 줄로 답변을 해주었습니다. 당신은 JS가없는 솔루션을 요구하지 않았기 때문에 대답은 완성되었습니다. –
사람들이 jQuery! = JS – msaad
왜 시도하지 마시오 fadeOut?
페이드 아웃 (순수 자바 스크립트)
$(document).ready(function() {
$('#plsme').fadeOut(5000); // 5 seconds x 1000 milisec = 5000 milisec
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id='plsme'>Loading... Please Wait</div>
질문은 CSS가 아니라 JavaScript 사용에 관한 것입니다! – Mushfiq
, 당신은 또한 마지막에 약간의 애니메이션을 추가 할 수 있습니다. 나머지 0.5 초 만들기
는body > div{
border:1px solid grey;
}
html, body, #container {
height:100%;
width:100%;
margin:0;
padding:0;
}
#container {
overflow:hidden;
position:relative;
}
#hideMe {
-webkit-animation: cssAnimation 5s forwards;
animation: cssAnimation 5s forwards;
}
@keyframes cssAnimation {
0% {opacity: 1;}
90% {opacity: 1;}
100% {opacity: 0;}
}
@-webkit-keyframes cssAnimation {
0% {opacity: 1;}
90% {opacity: 1;}
100% {opacity: 0;}
}
<div>
<div id='container'>
<div id='hideMe'>Wait for it...</div>
</div>
</div>
불투명도 속성을 애니메이션화. 길이를 바꾸는 경우 수학 계산을해야합니다.이 경우 5 초의 90 %는 0.5 초 동안 불투명도를 애니메이트합니다.
나는이 해결책을 좋아한다. 거기에 그렇게 결합하여 페이드 아웃 한 다음 DOM에서 그것을 제거하는 방법이 있습니까? –
가능하지만 그렇게하지 않는 것이 좋습니다. 그것을 위해 jQuery 나 pure JS를 사용하십시오. –
여기 예가 있습니다 : http://jsbin.com/xofaq/1/edit?html,css,output 이미 답변이 있습니다.하지만 잘하고 있었고 아이들이 저를 멀리 데려갔습니다. – balexandre
고맙습니다. @ balexandre, +1. – Alfred