본 글의 예시는 참고로 js를 이용한 이미지 전환 효과를 공유합니다.
버튼을 클릭하고 이미지를 전환하는 효과를 얻으려면 js를 사용하세요.
<div class="box" id="box"> <div class="img_box" id="img_box"> <img src="../raw/b1.jpg" class="image" > <img src="../raw/b2.jpg" class="image" > <img src="../raw/b3.jpg" class="image" > <img src="../raw/b4.jpg" class="image" > </div> <div id="left" class="switch"></div> <div id="right" class="switch"></div> </div>
구조: 너비와 높이가 고정된 div를 가장 바깥쪽 컨테이너로 사용하고 오버플로를 숨김으로 설정합니다.
그러면 내부 img_box의 너비가 상자 너비의 4배로 설정되고 높이는 동일합니다. 즉, img_box에 4개의 img가 있지만 2개의 div만 표시됩니다. 아래, 왼쪽, 오른쪽은 버튼으로 구현됩니다. 그림을 전환하려면 img_box의 왼쪽 속성을 변경해야 하므로 img_box의 위치는 편의상 관계로 설정되어야 합니다. img_box는 상자를 기준으로 위치가 지정됩니다. 4장의 사진은 왼쪽과 같이 플로팅으로 설정되어 있으며, 너비와 높이는 박스와 동일합니다.
CSS 코드:
*{ margin: 0; padding: 0; } .box{ width: 800px; height: 400px; margin: 20px auto; position: relative; overflow: hidden; } .img_box{ height: 400px; width: 3200px; position: absolute; -moz-transition: 0.5s; -webkit-transition: 0.5s; } img{ width: 800px; height: 400px; float: left; } .switch{ width: 200px; height: 100%; position: absolute; } #left{ left: 0px; top: 0px; background: -moz-linear-gradient(left, rgba(84, 84, 84, 0.50), rgba(20%,20%,20%,0)); background: -webkit-linear-gradient(left, rgba(84, 84, 84, 0.50), rgba(20%,20%,20%,0)); } #right{ right:0px; top: 0px; background: -moz-linear-gradient(left, rgba(20%,20%,20%,0), rgba(84, 84, 84,0.5)); background: -webkit-linear-gradient(left, rgba(20%,20%,20%,0), rgba(84, 84, 84,0.5)); } #left:hover{ background: -moz-linear-gradient(left, rgba(0, 0, 0,0.5), rgba(20%,20%,20%,0)); background: -webkit-linear-gradient(left, rgba(0, 0, 0,0.5), rgba(20%,20%,20%,0)); } #right:hover{ background: -moz-linear-gradient(left, rgba(20%,20%,20%,0), rgba(0, 0, 0,0.5)); background: -webkit-linear-gradient(left, rgba(20%,20%,20%,0), rgba(0, 0, 0,0.5)); }
왼쪽 및 오른쪽은 배경색 및 투명도 그라데이션 속성을 사용하고 Firefox 및 웹킷 브라우저만 추가합니다. 또한 일부 IE 브라우저에는 이제 360 안전 브라우저와 같은 IE 및 웹킷의 듀얼 코어가 있습니다.
배경: -moz-linear-gradient(왼쪽, rgba(84, 84, 84, 0.50), rgba(20%,20%,20%,0))
배경: -webkit-linear-gradient(왼쪽, rgba(84, 84, 84, 0.50), rgba(20%,20%,20%,0));
전환 시 원활한 전환을 위해 전환 속성이 추가됩니다.
-moz-전환: 0.5초;
-webkit-transition: 0.5초;
js 코드:
var box; var count=1; window.onload=function(){ box=document.getElementById("img_box"); var left=document.getElementById("left"); var right=document.getElementById("right"); left.addEventListener("click",_left); right.addEventListener("click",_right); document.body.addEventListener("mouseover",demo); } function _right(){ var dis=0; if(count<4){ dis=count*800; }else{ dis=0; count=0; } box.style.left="-"+dis+"px"; count+=1; } function _left(event){ var dis=0; if(count>1){ dis=(2-count)*800; }else{ dis=-3*800; count=5; } box.style.left=dis+"px"; count-=1; }
전역 변수 count를 사용하여 현재 표시되는 사진을 기록합니다. 전환 버튼을 클릭하면 count를 기준으로 어떤 사진이 표시되어야 하는지 계산한 다음 img_box의 왼쪽 속성을 계산하고 설정합니다.
위는 이미지 전환 효과를 구현하기 위해 소개한 js 코드입니다. 이미지 전환 효과를 구현하는 데 도움이 되기를 바랍니다.