이 글의 내용은 자바스크립트를 통한 자동 왼쪽 슬라이딩의 캐러셀 이미지(코드 예시)에 관한 내용입니다. 참고할만한 가치가 있으니 도움이 필요한 분들에게 도움이 되었으면 좋겠습니다.
최근 프로젝트를 할 때 항상 다른 사람들이 만든 다양한 플러그인 효과만 사용했는데, 작은 플러그인을 작성한 지 오래되어서 잊어버리게 되었습니다. 프론트엔드 프로그래머가 js 캐러셀 이미지를 구현하는 것은 필수입니다.
html 코드:
<!DOCTYPE HTML> <head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href="./demo.css"> </head> <body> <div class="slide"> <div class="img"> <ul id="slide_img"> <li><img src="./img/timgZQQ905MD.jpg"></li> <!--处理无缝衔接的图片--> <li><img src="./img/1486293868523.jpg"></li> <li><img src="./img/timg1.jpg"></li> <li><img src="./img/timg2.jpg"></li> <li><img src="./img/timgZQQ905MD.jpg"></li> </ul> </div> <ul id="num"> <li></li> <li></li> <li></li> <li></li> </ul> <div class="btn"> <span id="left"><</span> <span id="right">></span> </div> </div> <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <!--通过百度CDN地址引用jQuery库--> <script type="text/javascript" src="./demo.js"></script> </body>
이 작은 데모 예제에서는 원활한 연결이 필요하므로 html을 작성할 때 마지막 사진이 첫 번째 사진으로 원활하게 점프하고, 마지막 사진이 촬영됩니다. 그런 다음 직접 위치 지정을 통해 캐러셀이 마지막 그림에 도달하면 첫 번째 그림과 마지막 그림이 동일하므로 캐러셀의 효과가 부드럽고 자연스럽게 보입니다.
css 코드:
*{ margin: 0; padding: 0; } .slide{ position: relative; width: 1000px; height: 500px; margin: 40px auto; overflow: hidden; } .img ul{ position: absolute; left: -1000px; width: 5000px; } .img li{ list-style-type: none; float: left; } img{ width: 1000px; height: 500px; } #num li{ list-style-type: none; background-color: white; border: 1px solid red; border-radius: 100px; float: left; width: 10px; height: 10px; margin: 10px; cursor: pointer; } #num { position: absolute; top: 450px; left: 800px; } .btn{ font-size: 30px; color: gray; } #left{ position: absolute; top: 230px; left: 40px; cursor: pointer; } #right{ position: absolute; top: 230px; right: 40px; cursor: pointer; }
CSS에서 주의할 점은 위치 지정 시 전체 외부 p가 상대적으로 위치하는 반면, 내부의 콘텐츠 ul은 외부 p를 기준으로 절대적으로 위치가 지정되며 위치는 왼쪽을 통해 설정된다는 점입니다. top 등
js 코드:
$(document).ready(function () { initRadius(); }); var number = 1; //设置为全局变量 //轮播图图片主体 function startSlide() { dealRadius(number); if(number == 4) { number = 0; $('#slide_img').css({left: '0px'}); //处理无缝衔接图 dealRadius(0); // 处理无缝衔接小圆点的跳转 } number++; var imageLeft = -1000 * number; $('#slide_img').animate({left: imageLeft}); } var timer = setInterval(startSlide,3000); //小圆点的轮播实现 function dealRadius(num) { var lis = $('#num li'); lis.eq(num).css('background-color', 'red'); for(var i = 0; i < num; i++) { lis.eq(i).css('background-color','white'); } for(var i = num + 1; i < 4; i++) { lis.eq(i).css('background-color','white'); } } //初始化小圆点 function initRadius() { var lis = $('#num li'); lis.eq(0).css('background-color', 'red'); } //左右按钮的实现 $('#left').mousedown (function() { clearInterval(timer); if(number == 0) { $('#slide_img').css({left: '-4000px'}); number = 4; } var imageLeft = -1000 * (number-1); $('#slide_img').animate({left: imageLeft}); number--; if(number == 0) { dealRadius(3); } else { dealRadius(number-1); } }); $('#left').mouseup(function() { timer = setInterval(startSlide,3000); }); $('#right').mousedown (function() { clearInterval(timer); if(number == 4) { number = 0; $('#slide_img').css({left: '0px'}); //处理无缝衔接图 } var imageLeft = -1000 * (number+1); $('#slide_img').animate({left: imageLeft}); dealRadius(number); number++; }); $('#right').mouseup(function() { timer = setInterval(startSlide,3000); }); //小圆点的点击实现 $('#num').on('click','li',function(){ clearInterval(timer); var _number = $(this).index() + 1; number = _number dealRadius(number-1); var imageLeft = -1000 * number; $('#slide_img').animate({left: imageLeft}); timer = setInterval(startSlide,3000); });
js 코드에서는 타이머의 사용에 대해 먼저 알아야 합니다. 그 중 dom의 사용은 오랫동안 사용되지 않아 매우 낯설게 느껴집니다. . 자신을 더욱 강화해야 합니다. .
위 내용은 JavaScript는 자동 왼쪽 슬라이딩 캐러셀을 구현합니다(코드 예).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!