Maison > Questions et réponses > le corps du texte
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
*{
margin: 0;
padding:0;
}
ul{
list-style: none;
}
a{
text-decoration: none;
}
.wrapper{
width: 640px;
height: 368px;
margin: 50px auto;
position: relative;
overflow: hidden;
}
.wrapper li{
float: left;
width: 640px;
}
#list{
/* width: 3200px;*/
position: absolute;
}
.wrapper li img{
width: 100%;
}
.toggle{
width: 640px;
height: 368px;
}
.toggle span{
width: 30px;
height: 50px;
background:#FF9629;
position: absolute;
text-align: center;
line-height: 50px;
color: #fff;
font-size: 20px;
cursor: pointer;
/* display: none;*/
}
#prev{
top:159px;
}
#next{
top:159px;
right:0;
}
nav{
width: 640px;
height: 20px;
position: absolute;
bottom:10px;
left: 0;
text-align: center;
line-height: 20px;
}
nav span{
width: 10px;
height: 10px;
background: #FFC8A0;
border-radius: 50%;
display:inline-block;
margin: 0 2px;
}
.active{
background: red;
}
</style>
</head>
<body>
<p class="wrapper">
<ul id="list" style="left:0px">
<li><a href="#"><img src="img/1.jpg"></a></li>
<li><a href="#"><img src="img/2.jpg"></a></li>
<li><a href="#"><img src="img/3.jpg"></a></li>
<li><a href="#"><img src="img/4.jpg"></a></li>
<li><a href="#"><img src="img/5.jpg"></a></li>
</ul>
<p class="toggle">
<span id="prev"><</span>
<span id="next">></span>
</p>
<nav id="nav">
<span class="active"></span>
<span></span>
<span></span>
<span></span>
<span></span>
</nav>
</p>
<script type="text/javascript">
var list = document.getElementById("list");
var prev = document.getElementById("prev");
var next = document.getElementById("next");
var lis = document.querySelectorAll("#list li");
/ list.innerHTML += list.innerHTML;//Ajouter 5 liens supplémentaires/
var wrapper = document.getElementById("wrapper");
//动态的获取宽度
var styleN = document.createElement("style");
var text = "#list{width: "+640*lis.length+"px;}";
text += "#list li{width: "+640+"px;}";
styleN.innerHTML = text;
document.head.appendChild(styleN);
//图片轮播逻辑
function fn(ev) {
var nowLeft =parseInt(list.style.left)+ev;
list.style.left = nowLeft+"px";
list.style.transition ="1s";
/* console.log(list.style.left);*/
if(nowLeft < -(640*lis.length-640)){
list.style.left = 0+"px";
}else if(nowLeft > 0){
list.style.left = -(640*lis.length-640)+"px";
};
}
//自动轮播效果
var time;
play();
function play() {
time=setInterval(function () {
next.onclick();
},2000)
}
//控制左右切换
prev.onclick = function () {
fn(640);
};
next.onclick = function () {
fn(-640);
};
</script>
</body>
</html>
Je voudrais demander, lorsque l'image atteint la dernière image puis affiche l'image suivante, comment peut-elle ne pas voir l'effet de transition au milieu et la faire passer instantanément à la première image ?
三叔2017-06-12 09:30:53
Vous mettez le premier clone d'image à la fin
J'en ai écrit un en utilisant jquery, vous pouvez vous y référer
//初始化变量
var i=0,timer;
//为pic追加第一张图片到末尾
var clone=$(".pic li").first().clone();
$(".pic").append(clone);
var size=$(".pic>li").size();
console.log(size);
//动态增加按钮列表
for(var j=0;j<size-1;j++){
$(".btn").append("<li></li>");
}
$(".btn>li").eq(0).addClass("current");
//实现按钮点击切换效果
$(".btn>li").click(function(){
i=$(this).index();
$(".btn>li").eq(i).addClass("current").siblings().removeClass("current");
$(".pic").stop().animate({"left":-i*520},200);
});
//设置播放函数
function play(){
if(i==size){
$(".pic").css({"left":0});
i=1;
}
if(i==-1){
$(".pic").css({"left":-(size-1)*520},200);
i=size-2;
}
$(".pic").stop().animate({"left":-i*520},200);
if(i==size-1){
$(".btn>li").eq(0).addClass("current").siblings().removeClass("current");
}else{
$(".btn>li").eq(i).addClass("current").siblings().removeClass("current");
}
}
//设置自动播放
function autoplay(){
timer=setInterval(function(){
i++;
play();
},1000);
}
$(".contain").hover(function(){
clearInterval(timer);
},function(){
autoplay();
});
setTimeout(autoplay(),1000);
//设置左侧点击按钮事件
$(".arrow1").click(function(){
i++;
play();
});
$(".arrow2").click(function(){
i--;
play();
});
Affichage des effets :
https://ityanxi.github.io/seg...
巴扎黑2017-06-12 09:30:53
Vous pouvez le rechercher sur le site. En fait, de nombreuses personnes ont posé des questions à ce sujet. Le principe est une tromperie visuelle, similaire à la structure de 5,1,2,3,4,5,1. Quand on arrive à la cinquième image, il faut revenir à 1. Tout d'abord, on fait défiler vers le 1 le plus à droite selon. l'animation. À la fin de la transition Ajustez instantanément la position pour que le 1 à gauche remplace le 1 actuel. Pour faire simple, la position du 1 à droite est -1920px, et la position du 1 à gauche est 0px. . Juste au moment où le carrousel atteint -1920px, la position est instantanément ajustée à 0px, atteignant ainsi l'objectif de tromperie visuelle. Il en va de même pour 1 à 5, changez simplement la direction