이 글의 내용은 자바스크립트에서 이미지 전환의 애니메이션 효과(코드)를 구현하는 방법에 대한 내용입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
첫 번째 렌더링은 대략 이렇습니다. 왼쪽 버튼을 클릭하면 사진이 전환됩니다.
아주 간단한 것 같지만 여전히 난관이 많기 때문에 이 사례를 골라서 꼼꼼히 분석해보겠습니다.
1단계: 레이아웃
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>图片切换器</title> </head> <style type="text/css"> *{ margin: 0; padding: 0; } body{ background-color: RGB(123,113,104); } #pic{ width: 300px; height: 400px; position: relative; margin: 50px auto; } #pic img{ width: 300px; height: 400px; } #pic span,#pic p{ position: absolute; width: 300px; height: 30px; line-height: 30px; text-align: center; background-color: rgba(61,50,48,0.5); } #pic span{ top: 0px; } #pic p{ bottom: 0px; } #pic ul{ position: absolute; top:0px; left: 320px; } #pic li{ list-style: none; width: 40px; height: 40px; background-color: #333; margin-bottom:10px ; } #pic li.active{ background-color: #F2F2F2; } </style> <body> <p id="pic"> <img src="img/1.jpeg"/> <span>- / -</span> <p>图片描述正在加载中...</p> <ul> <li class="active"></li> <li></li> <li></li> <li></li> <li></li> </ul> </p> </body> </html>
2단계: 데이터 및 초기화
1) 데이터 찾기
2) 페이지 초기화
<script type="text/javascript"> window.onload = function(){ var op = document.getElementById("pic"); var oImg = op.getElementsByTagName('img')[0]; var oSpan = op.getElementsByTagName('span')[0]; var oP = op.getElementsByTagName('p')[0]; var oUl = op.getElementsByTagName('ul')[0]; var arrSrc = ['img/1.jpeg','img/2.jpg','img/3.jpg','img/4.jpg','img/5.jpg']; var arrText = ['图片描述:第一张','图片描述:第二张','图片描述:第三张','图片描述:第四张','图片描述:第五张']; //一般有数组就需要一个值 var num = 0; //初始化 oSpan.innerHTML = num+1 +" / "+ arrSrc.length; oImg.src = arrSrc[num]; oP.innerHTML = arrText[num]; for(var i=0;i<arrSrc.length;i++){ oUl.innerHTML += '<li></li>'; } } </script>
3단계: 이미지 전환, 이미지 전환 및 지금까지의 텍스트 표시 기능에는 구현되었지만 옆에 있는 ul의 효과는 아직 구현되지 않았습니다.
var oLi = oUl.getElementsByTagName('li'); //切换图片 for(var i=0;i<arrSrc.length;i++){ //自定义属性,一一对应 oLi[i].index = i; oLi[i].onclick = function(){ var id = this.index; //通过自定义的属性设置对应的信息 oImg.src = arrSrc[id]; oP.innerHTML = arrText[id]; oSpan.innerHTML = id+1 +" / "+ arrSrc.length; } }
4단계: li의 클래스 스타일을 추가합니다.
아이디어 1:
li의 모든 스타일을 지우고 클릭하는 스타일에 추가하세요.
var oldLi = 0; //初始化 oLi[oldLi].className = 'active'; //在点击事件中 //循环将class清空 for(var j=0;j<arrSrc.length;j++){ oLi[j].className = ""; } oLi[id].className = "active";
아이디어 2:
이전 항목을 지우고 현재 추가
변수를 정의하고 oldLi는 클릭한 이전 값을 저장합니다.
기본값은 0
다음 항목을 클릭하면 0(기본값)이 지워집니다. .
그리고 현재 클릭된 li oldLi = this.index;
그런 다음 현재 li의 클래스 속성을 설정합니다
oLi[oldLi].className = ''; oldLi = id; this.className = 'active';
Completed;
아래에 전체 코드와 스크린샷을 게시하세요
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>图片切换器</title> </head> <style type="text/css"> *{ margin: 0; padding: 0; } body{ background-color: RGB(123,113,104); } #pic{ width: 300px; height: 400px; position: relative; margin: 50px auto; } #pic img{ width: 300px; height: 400px; border-radius:10px; } #pic span,#pic p{ position: absolute; width: 300px; height: 30px; line-height: 30px; text-align: center; background-color: rgba(61,50,48,0.5); } #pic span{ top: 0px; border-radius:10px 10px 0 0; } #pic p{ bottom: 0px; border-radius: 0 0 10px 10px; } #pic ul{ position: absolute; top:0px; left: 320px; } #pic li{ list-style: none; width: 40px; height: 40px; background-color: #333; margin-bottom:10px ; border-radius: 10px; } #pic li.active{ background-color: #F2F2F2; } </style> <script type="text/javascript"> window.onload = function(){ var oDiv = document.getElementById("pic"); var oImg = oDiv.getElementsByTagName('img')[0]; var oSpan = oDiv.getElementsByTagName('span')[0]; var oP = oDiv.getElementsByTagName('p')[0]; var oUl = oDiv.getElementsByTagName('ul')[0]; var oLi = oUl.getElementsByTagName('li'); var arrSrc = ['img/1.jpeg','img/2.jpg','img/3.jpg','img/4.jpg','img/5.jpg']; var arrText = ['图片描述:第一张','图片描述:第二张','图片描述:第三张','图片描述:第四张','图片描述:第五张']; //一般有数组就需要一个值 var num = 0; var oldLi = 0; //初始化 oSpan.innerHTML = num+1 +" / "+ arrSrc.length; oImg.src = arrSrc[num]; oP.innerHTML = arrText[num]; for(var i=0;i<arrSrc.length;i++){ oUl.innerHTML += '<li></li>'; } oLi[oldLi].className = 'active'; //切换图片 for(var i=0;i<arrSrc.length;i++){ //自定义属性,一一对应 oLi[i].index = i; oLi[i].onclick = function(){ var id = this.index; //通过自定义的属性设置对应的信息 oImg.src = arrSrc[id]; oP.innerHTML = arrText[id]; oSpan.innerHTML = id+1 +" / "+ arrSrc.length; oLi[oldLi].className = ''; oldLi = id; this.className = 'active'; } } } </script> <body> <div id="pic"> <img src="img/1.jpeg"/> <span>- / -</span> <p>图片描述正在加载中...</p> <ul> <!--<li class="active"></li>--> </ul> </div> </body> </html>
관련 권장 사항:
Javascript에서 가져오기 및 내보내기 구현 방법(코드 포함)
네이티브 js 캐러셀 렌더링의 애니메이션 효과(코드 포함)
위 내용은 자바스크립트에서 이미지 전환의 애니메이션 효과를 얻는 방법(코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!