>  기사  >  웹 프론트엔드  >  JavaScript는 자동 왼쪽 슬라이딩 캐러셀을 구현합니다(코드 예).

JavaScript는 자동 왼쪽 슬라이딩 캐러셀을 구현합니다(코드 예).

不言
不言앞으로
2018-10-27 15:15:501894검색

이 글의 내용은 자바스크립트를 통한 자동 왼쪽 슬라이딩의 캐러셀 이미지(코드 예시)에 관한 내용입니다. 참고할만한 가치가 있으니 도움이 필요한 분들에게 도움이 되었으면 좋겠습니다.

최근 프로젝트를 할 때 항상 다른 사람들이 만든 다양한 플러그인 효과만 사용했는데, 작은 플러그인을 작성한 지 오래되어서 잊어버리게 되었습니다. 프론트엔드 프로그래머가 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;
		$(&#39;#slide_img&#39;).css({left: &#39;0px&#39;});  //处理无缝衔接图
		 dealRadius(0); // 处理无缝衔接小圆点的跳转
	}
	number++;
	var imageLeft = -1000 * number;
	$(&#39;#slide_img&#39;).animate({left: imageLeft});
}	
var timer = setInterval(startSlide,3000);



//小圆点的轮播实现
function dealRadius(num) {
	var lis = $(&#39;#num li&#39;);
	lis.eq(num).css(&#39;background-color&#39;, &#39;red&#39;);
	for(var i = 0; i < num; i++) {
		lis.eq(i).css(&#39;background-color&#39;,&#39;white&#39;);
	}
	for(var i = num + 1; i < 4; i++) {
		lis.eq(i).css(&#39;background-color&#39;,&#39;white&#39;);
	}
}

//初始化小圆点
function initRadius() {
	var lis = $(&#39;#num li&#39;);
	lis.eq(0).css(&#39;background-color&#39;, &#39;red&#39;);
}


//左右按钮的实现
$(&#39;#left&#39;).mousedown (function() {
	clearInterval(timer);
	if(number == 0) {
		$(&#39;#slide_img&#39;).css({left: &#39;-4000px&#39;}); 
		number = 4;
	}
	var imageLeft = -1000 * (number-1);
	$(&#39;#slide_img&#39;).animate({left: imageLeft});
	number--;
	if(number == 0) {
		dealRadius(3);
	} else {
			dealRadius(number-1);
	}
});
$(&#39;#left&#39;).mouseup(function() {
	timer = setInterval(startSlide,3000);
});

$(&#39;#right&#39;).mousedown (function() {
	clearInterval(timer);
	if(number == 4) {
		number = 0;
		$(&#39;#slide_img&#39;).css({left: &#39;0px&#39;});  //处理无缝衔接图
	}
	var imageLeft = -1000 * (number+1);
	$(&#39;#slide_img&#39;).animate({left: imageLeft});
	dealRadius(number);
	number++;

});
$(&#39;#right&#39;).mouseup(function() {
	timer = setInterval(startSlide,3000);
});


//小圆点的点击实现
$(&#39;#num&#39;).on(&#39;click&#39;,&#39;li&#39;,function(){
	clearInterval(timer);
	var _number = $(this).index() + 1;
	number = _number
	dealRadius(number-1);
	var imageLeft = -1000 * number;
	$(&#39;#slide_img&#39;).animate({left: imageLeft});
	timer = setInterval(startSlide,3000);
});

js 코드에서는 타이머의 사용에 대해 먼저 알아야 합니다. 그 중 dom의 사용은 오랫동안 사용되지 않아 매우 낯설게 느껴집니다. . 자신을 더욱 강화해야 합니다. .

위 내용은 JavaScript는 자동 왼쪽 슬라이딩 캐러셀을 구현합니다(코드 예).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제