> 웹 프론트엔드 > JS 튜토리얼 > javascript_javascript 스킬을 기반으로 이미지 전환 효과 구현

javascript_javascript 스킬을 기반으로 이미지 전환 효과 구현

WBOY
풀어 주다: 2016-05-16 15:05:08
원래의
1368명이 탐색했습니다.

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿