Maison  >  Article  >  interface Web  >  JavaScript implémente un carrousel automatique coulissant vers la gauche (exemple de code)

JavaScript implémente un carrousel automatique coulissant vers la gauche (exemple de code)

不言
不言avant
2018-10-27 15:15:501852parcourir

Le contenu de cet article concerne l'image carrousel coulissante vers la gauche (exemple de code) implémentée par JavaScript. Elle a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Lorsque je fais des projets récemment, je n'utilise toujours que divers plug-ins d'effets créés par d'autres. Je me suis souvenu que cela faisait longtemps que je n'avais pas écrit de petits plug-ins et je les oublierai après. depuis longtemps, j'ai donc rapidement rattrapé le programme front-end. Un must pour les membres pour implémenter un graphique carrousel js.

Code 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>

Ce petit exemple de démonstration utilise 4 images, car il doit établir une connexion transparente, c'est-à-dire que la dernière image passe en douceur à la première image, donc lors de l'écriture HTML, la dernière image est répétée, puis par positionnement direct, lorsque le carrousel atteint la dernière image, l'intégralité de l'ul est positionnée sur la première image, car la première et la dernière image sont les mêmes, donc l'effet ressemble à un fluide et carrousel naturel.

Code 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;
}

Ce qu'il faut noter en CSS, c'est que lors du positionnement, tout le p externe est positionné relativement, tandis que le contenu ul inside est positionné de manière absolue par rapport à l'extérieur p. Définissez la position par gauche, haut, etc.

Code 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);
});

Dans le code js, vous devez d'abord connaître l'utilisation des minuteries. Parmi eux, l'utilisation. de dom n'a pas été utilisé depuis longtemps, cela semble très inconnu. . Vous devez vous renforcer davantage. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer