-
[JavaScript] ImageVScode/JavaScript 2022. 9. 8. 17:54
getElementById
-자바스크립트에서 바디 안의 id 셀렉터 값을 지목하는 방법
-document.getElementById("아이디값")
onmouseover
-해당 태그에 마우스 포인터가 올라가면 일어나는 이벤트
onmouseout
-해당 태그에서 마우스 포인터가 밖으로 벗어나면 일어나는 이벤트
1. 마우스로 이미지 변환
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Image01.html</title> <script type="text/javascript"> function changeImageg01(){ document.getElementById("img1").src="images/5.jpg"; } // 마우스를 올리면 변하는 이미지 function changeImage02(){ document.getElementById("img1").src="images/1.jpg"; } // 마우스가 이미지에서 벗어나면 나타나는 이미지 function changeImage03(){ document.getElementById("img1").src="images/3.jpg"; } // 마우스로 클릭하면 변하는 이미지 </script> </head> <body> <img src="images/1.jpg" id="img1" onclick="changeImage03();" onmouseover="changeImageg01();" onmouseout="changeImage02();" /> </body> </html>
2. 이미지 이름 입력받아서 이미지 변환
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Image02.html</title> <script type="text/javascript"> // 그림을 클릭하면 숫자하나를 입력 받아서 // "숫자.jpg" 파일로 그림을 바꾸는 코드를 완성 function change01(){ var number=prompt('number(1~10)','1'); var filename="images/"+number+".jpg"; document.getElementById("target").src=filename; } </script> </head> <body> <img src="images/1.jpg" id="target" onclick="change01();" /> </body></html>
3. 마우스 클릭으로 지정된 범위까지 이미지 변환
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Image03.html</title> <script type="text/javascript"> // 클릭하면 이미지가 지정한 범위까지 순서대로 변함 var imgNum=1; function changeImg(){ imgNum++; if(imgNum>10) imgNum=1; // 이미지 번호가 10 이후에는 1.jpg로 돌아감 document.getElementById("target").src="images/"+imgNum +".jpg"; } </script> </head> <body> <img src="images/1.jpg" id="target" onclick="changeImg();"/> </body> </html>
4. 지정된 범위까지 자동으로 이미지 변환
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Image04.html</title> <script type="text/javascript"> // 1초에 한번씩 다음 이미지로 바뀌게 코딩. 그림은 1.jpg~10.jpg까지 var imgNum=1; window.setInterval(function changeImg(){ imgNum++; if(imgNum>10) imgNum=1; document.getElementById("target").src="images/"+imgNum+".jpg"; },1000); </script> </head> <body> <img src="images/1.jpg" id="target"> </body> </html>
5. clearInterval()
-함수를 종료시키는 명령어
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Image05.html</title> <script type="text/javascript"> var imgNum=1; var timer; function start(){ // timer 변수로 멈출 명령을 정의함 timer=window.setInterval(function(){ imgNum++; if(imgNum>10) imgNum=1; document.getElementById("target").src="images/"+imgNum +".jpg"; },1000); } function stop(){ window.clearInterval(timer) } </script> </head> <body onload="start();"> // 창을 실행시킬 때부터 start() 함수가 시작됨 <img src="images/1.jpg" id="target" onmouseover="stop();" onmouseout="start();" > // 이미지에 마우스를 올리면 변화하던 이미지가 멈춤 </body> </html>
6. 마우스로 함수 2개를 실행/정지 번갈아 시키기
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Image06.html</title> <style type="text/css"> #a1{position:absolute; width:170px; height:255px; border:2px solid black; top:100px;} </style> <script type="text/javascript"> // 한개의 타이머는 시계방향으로 0.5초마다 20도씩 회전하는 동작 // 또 한개의 타이머는 반시계방향으로 0.5초마다 20도씩 회전하는 동작 // onMouseOver와 onMouseOut 이벤트에 연결하여 코딩 var aa=0; var timer1, timer2; function clockwise(){ window.clearInterval(timer2); timer1=window.setInterval(function(){ aa+=20; document.getElementById("a1").style.webkitTransform= 'rotate('+aa+'deg)';},500); } function counterclockwise(){ window.clearInterval(timer1); timer2=window.setInterval(function(){ aa-=20; document.getElementById("a1").style.webkitTransform= 'rotate('+aa+'deg)';},500); } </script> </head> <body onload="clockwise();"> <div id="a1" onmouseout="clockwise();" onMouseOver="counterclockwise();"> <img src="images/1.jpg" > </div> </body> </html>
css style을 이용한 이미지 슬라이드 제작하기
1. 마우스 클릭으로 다음 이미지 넘기기
-document.getElementById("").style.left
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ImageControll01.html</title> <style type="text/css"> #view{position:relative; width:170px; height:255px; border:3px solid blue; left:100px; overflow:hidden;} // view: 이미지가 나타날 id // overflow: hidden으로 설정하여 #imgs가 지정된 범위를 제외하고 안 보임 #imgs{position:absolute; width:850px; height:255px; border:1px dashed red; transition: 0.2s;} // imgs: 이미지를 이어 붙인 id </style> <script type="text/javascript"> var imgNum=0; // 이동 거리 계산 때문에 초기값은 1보단 0으로 하는게 좋음 function moveImg(){ imgNum++; if(imgNum>4) imgNum=0; var dist=imgNum*170*(-1); // 왼쪽으로 이미지 크기(170px)만큼 이동함 document.getElementById("imgs").style.left=dist+"px"; } </script> </head> <body> <div id="view"> <div id="imgs" onclick="moveImg();"> <img src="images/1.jpg"><img src="images/2.jpg"><img src="images/3.jpg"><img src="images/4.jpg"><img src="images/5.jpg"> // 이미지를 이어서 써야 float 명령으로 일렬로 출력됨 </div> </div> </body> </html>
2. 이미지 위에 마우스 올리면 정지, 마우스가 이미지에서 벗어나면 실행
-document.getElementById("").style.left
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ImageControll02.html</title> <style type="text/css"> #view{position:relative; width:170px; height:255px; border:3px solid blue; left:100px; overflow:hidden;} #imgs{position:absolute; width:850px; height:255px; left:0; border:1px dashed red; transition: 0.2s;} </style> <script type="text/javascript"> // 타이머를 이용해서 시작부터 자동으로 움직이게 하되 // 마우스가 올라가면 멈추고 마우스가 빠져나가면 다시 움직임 var timer; var imgNum=0; // 이동 거리 계산 때문에 초기값은 1보단 0으로 하는게 좋음 function moveImg(){ timer=window.setInterval(function(){ imgNum++; if(imgNum>4) imgNum=0; var dist=imgNum*170*(-1); document.getElementById("imgs").style.left=dist+"px"; },1000); } function stop(){ window.clearInterval(timer); } </script> </head> <body onLoad="moveImg();"> <div id="view" onmouseout="moveImg();" onmouseover="stop();"> <div id="imgs" > <img src="images/1.jpg"><img src="images/2.jpg"><img src="images/3.jpg"><img src="images/4.jpg"><img src="images/5.jpg"> </div> </div> </body> </html>
3. 투명도 이용해서 이미지 슬라이드 만들기
-document.getElementById('').style.opacity
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ImageControll03.html</title> <style type="text/css"> #view{position:relative; width:170px; height:255px; border:1px solid blue; left:100px;} .imgs{position:absolute; top:0; left:0; opacity:0; transition:1s;} .imgs:first-child{opacity:1;} // 처음에 나타나는 이미지는 투명도 1로 하여 선명하게 나타나게 함 </style> <script type="text/javascript"> var imgNum=1; window.setInterval(function(){ // document.getElementById("imgs"+imgNum).style.opacity='0'; for(var i=1; i<=5; i++) document.getElementById("imgs"+i).style.opacity='0'; // 현재 화면에 보여야할 이미지가 나오기 전에 모든 이미지 투명으로 imgNum++; if(imgNum>5) imgNum=1; document.getElementById("imgs"+imgNum).style.opacity='1'; },1000); </script> </head> <body> <div id="view"> <div class="imgs" id="imgs1"><img src="images/1.jpg"></div> <div class="imgs" id="imgs2"><img src="images/2.jpg"></div> <div class="imgs" id="imgs3"><img src="images/3.jpg"></div> <div class="imgs" id="imgs4"><img src="images/4.jpg"></div> <div class="imgs" id="imgs5"><img src="images/5.jpg"></div> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ImageControll04.html</title> <style type="text/css"> #view{position:relative; width:170px; height:255px; border:1px solid blue; left:100px;} .imgs{position:absolute; top:0; left:0; opacity:0; transition:1s;} .imgs:first-child{opacity:1;} </style> <script type="text/javascript"> // 순서대로 fadein 하되 마우스가 올라가면 멈춤, 나가면 다시 시작하게 코딩 var timer; var imgNum=1; function moveImg(){ timer=window.setInterval(function(){ document.getElementById("imgs"+imgNum).style.opacity='0'; imgNum++; if(imgNum>5) imgNum=1; document.getElementById("imgs"+imgNum).style.opacity='1'; },1000); } function stop(){ window.clearInterval(timer); } </script> </head> <body onload="moveImg"> <div id="view" onmouseout="moveImg();" onmouseover="stop();"> <div class="imgs" id="imgs1"><img src="images/1.jpg"></div> <div class="imgs" id="imgs2"><img src="images/2.jpg"></div> <div class="imgs" id="imgs3"><img src="images/3.jpg"></div> <div class="imgs" id="imgs4"><img src="images/4.jpg"></div> <div class="imgs" id="imgs5"><img src="images/5.jpg"></div> </div> </body> </html>
4. transform 이용하기
-document.getElementById("").style.webkitTransform
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ImageControll05.html</title> <style type="text/css"> ul{list-style:none; margin:0; padding:0;} ul li{position:relative; float:left; padding:0; margin:0px; overflow:hidden;} .caption{position:absolute; width:300px; height:200px; top:200px; background:black; opacity:0.7; transition:0.5s;} .caption h1, .caption p{color:white; text-align:center;} </style> <script type="text/javascript"> function caption_up(x){ document.getElementById("cap"+x).style.webkitTransform= "translateY(-200px)"; } // 마우스를 이미지에 올리면 id cap이 올라옴 function caption_down(x){ document.getElementById("cap"+x).style.webkitTransform= "translateY(+200px)"; } // 마우스가 이미지에서 벗어나면 id cap 내려감 </script> </head> <body> <ul> <li onmouseover="caption_up(1)" onmouseout="caption_down(1)"> <img src="images/prod1.jpg"> <div class="caption" id="cap1"> <h1>상품1</h1><p>상품1:설명텍스트</p><p>가격:12,234원</p> </div> </li> <li onmouseover="caption_up(2)" onmouseout="caption_down(2)"> <img src="images/prod2.jpg"> <div class="caption" id="cap2"> <h1>상품2</h1><p>상품2:설명텍스트</p><p>가격:12,234원</p> </div> </li> <li onmouseover="caption_up(3)" onmouseout="caption_down(3)"> <img src="images/prod3.jpg"> <div class="caption" id="cap3"> <h1>상품3</h1><p>상품3:설명텍스트</p><p>가격:12,234원</p> </div> </li> </ul> </body> </html>
5. 버튼 아이콘을 만들어 지정된 이미지로 이동하기
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ImageControll06.html</title> <style type="text/css"> #view{position:relative; width:600px; height:400px; margin:0 auto; border:1px dashed black; overflow:hidden;} #imgs{position:absolute; width:4800px; height:400px; left:0; top:0; border:1px dashed red; transition:0.3s;} img{width:600px; height:400px;} #remote{position:relative; width:200px; height:50px; border:1px solid white; margin:0 auto; top:350px; text-align: center;} ul{list-style:none; padding:0; margin:0; display:inline-block;} ul li{float:left; width:14px; height:14px; background:white; border-radius: 50%; margin:18px 4px;} </style> <script type="text/javascript"> // style의 left값을 이용해서 각 버튼에 맞는 이미지가 화면에 // 나타나도록 코딩 function move(x){ document.getElementById("imgs").style.left=(-1)*600*(x-1)+"px"; } </script> </head> <body> <div id="view"> <div id="imgs"><img src="images/Koala.jpg" id="img1"><img src="images/Chrysanthemum.jpg" id="img2"><img src="images/Desert.jpg" id="img3"><img src="images/Hydrangeas.jpg"><img src="images/Jellyfish.jpg"><img src="images/Lighthouse.jpg"><img src="images/Penguins.jpg"><img src="images/Tulips.jpg"></div> <div id="remote"> <ul> <li onclick="move(1)"></li> <li onclick="move(2)"></li> <li onclick="move(3)"></li> <li onclick="move(4)"></li> <li onclick="move(5)"></li> <li onclick="move(6)"></li> <li onclick="move(7)"></li> <li onclick="move(8)"></li> </ul> </div> </div> </body> </html>
6. 좌우 버튼을 생성하여 이미지 넘기기
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ImageControll07.html</title> <style type="text/css"> #view{position:relative; width:600px; height:400px; margin:0 auto; border:1px dashed black; overflow: hidden;} #imgs{position:absolute; width:4800px; height:400px; left:0; top:0; border:1px dashed red; transition:0.3s;} img{width:600px; height:400px;} #lbutton{position:absolute; left:0; bottom:0; width:50px; height:50px; border-radius:50%; overflow:hidden; background-image:url("images/ico_movie_171115.png"); background-position:-60px -460px;} #rbutton{position:absolute; right:0; bottom:0; width:50px; height:50px; border-radius:50%; overflow:hidden; background-image:url("images/ico_movie_171115.png"); background-position:0px -460px;} </style> <script type="text/javascript"> var imgNum=0; function moveleft(){ if(imgNum==0) return; // end function imgNum--; document.getElementById("imgs").style.left=imgNum*(-1)*600+"px"; } function moveright(){ if(imgNum==7) return; // end function imgNum++; document.getElementById("imgs").style.left=imgNum*(-1)*600+"px"; } function move(x){ if(x==-1&&imgNum==0)return; else if(x==1&&imgNum==7) return; else if(x==-1&&imgNum>0) imgNum--; else if(x==1&&imgNum<7) imgNum++; document.getElementById("imgs").style.left=imgNum*-600+"px"; } </script> </head> <body> <div id="view"> <div id="imgs"><img src="images/Koala.jpg" id="img1"><img src="images/Chrysanthemum.jpg" id="img2"><img src="images/Desert.jpg" id="img3"><img src="images/Hydrangeas.jpg"><img src="images/Jellyfish.jpg"><img src="images/Lighthouse.jpg"><img src="images/Penguins.jpg"><img src="images/Tulips.jpg"></div> <div id="lbutton" onclick="move(-1);"></div> <div id="rbutton" onclick="move(1);"></div> </div> </body> </html>
7. 시작/정지 버튼을 생성하여 이미지 넘기기
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ImageControll08.html</title> <style type="text/css"> #view{ position:relative; width:600px; height:400px; margin:0 auto; border:1px dashed black; overflow: hidden;} #imgs{ position:absolute; width:4800px; height:400px; left:0px; top:0; border:1px dashed red; transition: 0.3s; } img{ width:600px; height:400px; } #remot{ position:relative; width:200px; height:50px; border:1px solid white; margin:0 auto; top:350px; text-align: center;} #remot ul{ list-style:none; margin:0; padding:0; display:inline-block;} #remot ul li{ float:left; width:25px; height:25px; background:white; border-radius: 50%; margin:13px 10px; line-height:25px; text-align:center; cursor: pointer;} </style> <script type="text/javascript"> // play : 이미지를 한장씩 1초 또는 2초마다 넘기며 보여줌 // 이미지의 끝(7번)에 다다르면 맨 처음 이미지로 이동. // stop : 이미지 자동 rolling 을 멈춤. // 이미지 롤링은 페이지 시작시 동작하면서 시작하게 작성 var imgNum=0; var timer; function play(){ timer = window.setInterval(function(){ imgNum++; if(imgNum>7)imgNum=0; var dist = -600*imgNum; document.getElementById("imgs").style.left = dist + 'px'; }, 1500); } function stop(){ window.clearInterval(timer); } </script> </head> <body onload="play()"> <div id="view"> <div id="imgs"><img src="images/Koala.jpg"><img src="images/Chrysanthemum.jpg"><img src="images/Desert.jpg"><img src="images/Hydrangeas.jpg"><img src="images/Jellyfish.jpg"><img src="images/Lighthouse.jpg"><img src="images/Penguins.jpg"><img src="images/Tulips.jpg"></div> <div id="remot"> <ul> <li onClick="play()">▶</li> <li onClick="stop()">■</li> </ul> </div> </div> </body> </html>
8. 시작/정지 버튼 번갈아가며 나타나게 함
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ImageControll09.html</title> <style type="text/css"> #view{position:relative; width:600px; height:400px; margin:0 auto; border:1px dashed black; overflow:hidden;} #imgs{position:absolute; width:4800px; height:400px; left:0; top:0; border:1px dashed red; transition:0.3s;} img{width:600px; height:400px;} #remote{position:relative; width:200px; height:50px; border:1px solid white; margin:0 auto; top:350px; } #remote div{position:relative; width:25px; height:25px; background:white; border-radius: 50%; line-height:25px; text-align: center; cursor:pointer; margin:13px auto;} </style> <script type="text/javascript"> var imgNum=0; var timer; var state=false; // 현재 플레이 상태인지, 멈춤상태인지 저장할 변수 // document.getElementById("btn").innerHTML='■'; // document.getElementById("btn").innerHTML='▶'; function play_stop(){ if(state==true){ // 현재 플레이중(버튼에 '■'가 표시되어 있는 중 버튼 클릭) // -> 동작은 멈추고 버튼 표시는 '▶'로 전환 state=false; window.clearInterval(timer); document.getElementById("btn").innerHTML='▶'; } else{ // 현재 멈춰있는 중(버튼에 '▶'가 표시되어 있는 중 버튼 클릭) // -> 동작은 멈추고 버튼 표시는 '■'로 전환 state=true; document.getElementById("btn").innerHTML='■'; timer=window.setInterval(function(){ imgNum++; if(imgNum>7) imgNum=0; document.getElementById("imgs").style.left=imgNum*-600+"px"; },1000); } } </script> </head> <body onload="play_stop()"> <div id="view"> <div id="imgs"><img src="images/Koala.jpg" id="img1"><img src="images/Chrysanthemum.jpg" id="img2"><img src="images/Desert.jpg" id="img3"><img src="images/Hydrangeas.jpg"><img src="images/Jellyfish.jpg"><img src="images/Lighthouse.jpg"><img src="images/Penguins.jpg"><img src="images/Tulips.jpg"></div> <div id="remote"> <div id="btn" onclick="play_stop()">■</div> </div> </div> </body> </html>
'VScode > JavaScript' 카테고리의 다른 글
[JavaScript] DOM (0) 2022.09.09 [JavaScript] vaildation, select tag, visibility, check (0) 2022.09.08 [JavaScript] BOM (0) 2022.09.08 [JavaScript] function (0) 2022.09.08 [JavaScript] if, loop (0) 2022.09.08