#timing event
- setTimeout(함수 , 시간) : 해당 시간이 지난 후 함수 실행
시간의 단위는 밀리세턴드이다(1000ms = 1s) - setInterval(함수 , 시간) : 해당 시간이 지날때마다 함수 실행
타이밍 함수(함수, 시간, 값1,값2, ....)
값1,값2 ... 는 함수의 인자값으로 지정한다.
clearTimeout(타임아웃 객체), clearInterval(타임아웃객체) - 작업 종료
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
#img1{
height : 250px;
}
</style>
<script type="text/javascript">
var imgs = ["whale1.png","whale2.png","whale3.png"]; // 그룹으로 지정
var now =0; // 현재 이미지 위치가 어디인지( index의 위치)
var interval = null; // 누를때마다 인터벌이 생기면 안되기때문에
var timeout = null;
function playImg() {
if(interval == null){ // 중복을 막기위해 인터벌이 널일때만 플레이된다.
timeout = setTimeout(fade,2700);
interval = setInterval(changeImg,3000); // 인터벌 변수에 인터벌 세팅 함수 제공 이미지를
}
}
function changeImg() {
now++; // 배열의 순서대로 이동 시키기 위해 1씩 증가시킨다.
if (now == imgs.length) { // 배열 안에서 반복되어야한다. 따라서 배열의 길이와 현재 위치가 같아지면
// 위치를 다시 0으로 보낸다.
now =0;
}
document.getElementById("img1").src = imgs[now]; // 그리고 해당 위치에 있는 이미지를 화면으로 출력
timeout = setTimeout(fade,2700);
}
function stopImg() { // 자동 변함을 멈추는 함수
clearInterval(interval); // 그저 인터벌 제거 함수
clearTimeout(timeout);
interval = null; // 인터벌이 널로 들어가있어야 다시 시작할때 중복이 발생하지 않는다.
}
function fade() {
//fadeOut 0.5초 동안 투명도가 옅어진다. 0.3s -> 300/20 =>15, 1.0/20 => 0.05
for(var i = 0; i <20 ; i ++){ //20번 동안 서서히 줄어든다.
setTimeout(function (t) {
document.getElementById("img1").style.opacity = 1.0 - (0.05*t);
},15 * i, i)
}
//fadeIn 0.5초 동안 투명도가 진해진다.
for(var i = 0; i <20 ; i ++){
setTimeout(function (t) {
document.getElementById("img1").style.opacity = 0.0 + (0.05*t);
},300 + (15 * i), i)
}
}
</script>
</head>
<body>
<img alt ="이미지" src ="whale1.png" id ="img1">
<br>
<input type="button" value="play" onclick ="playImg();">
<input type="button" value="stop" onclick ="stopImg();">
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>움직이는 시간</title>
<script type="text/javascript">
var timeout = setTimeout(function() {
alert("f");
},3000);
setTimeout(test,3000);
function test() {
console.log("test");
}
function stopT() {
clearTimeout(timeout);
}
setInterval(function () {
var d = new Date();
var now = d.getHours() + ":" + d.getMinutes()+ ":" + d.getSeconds()
document.getElementById("a").innerHTML = now;
},1000);
setInterval(function (t) {
var d = new Date();
var now = d.getHours() + ":" + d.getMinutes()+ ":" + d.getSeconds()
document.getElementById("a").innerHTML = now + "<br/>";
document.getElementById("a").innerHTML += t + ">" + now;
},1000,"abc");
</script>
</head>
<body>
<input type="button" value = "살고 싶으면 3초안에 누르시오." onclick ="stopT();">
<div id ="a"></div>
</body>
</html>
예로 스크립트로 jquery를 불러오고 새로운 스크립트를 작성하려면 꼭 스크립트 영역을 하나 더 생성해줘야한다.
'about. What I learned > about.Gudi' 카테고리의 다른 글
메타 데이터 (0) | 2021.05.13 |
---|---|
jQuery start(0507) (0) | 2021.05.07 |
5/3일 - javaScript (0) | 2021.05.03 |
자바스크립트(Javascrip (0) | 2021.04.29 |
CSS (0) | 2021.04.26 |