본 글의 예시는 참고로 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 코드입니다. 이미지 전환 효과를 구현하는 데 도움이 되기를 바랍니다.