/*css*/
ul,li{
margin: 0;
padding: 0;
}
.slider{
width: 100%;
height: 300px;
overflow: hidden;
}
.slider_box{
width: 500%;
height:100%;
transition: all 0.3s;
}
.slider_box>ul{
width: 100%;
height:100%;
white-space: nowrap;
}
.slider_box>ul>li{
display: inline-block;
width: 20%;
height: 100%;
}
.slider_box>ul>li:nth-of-type(0){
background: #000088;
}
.slider_box>ul>li:nth-of-type(1){
background: #004444;
}
.slider_box>ul>li:nth-of-type(2){
background: #221199;
}
.slider_box>ul>li:nth-of-type(3){
background: #AA1111;
}
.slider_box>ul>li:nth-of-type(4){
background: #E38D13;
}
/*html*/
<p class="slider">
<p class="slider_box">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</p>
</p>
/*js*/
var list = document.getElementsByClassName("slider_box")[0];
var arr = list.children;
var test = 0;
function slide(){
if(test<5){
list.style.transform = "translateX(-"+test*20+"%)";
test++;
setTimeout("slide()",1000);
}
}
slide();
Wie im obigen Code gezeigt, gleitet die slider_box jede Sekunde um 20 % nach links (1 Bildschirm), aber das Problem tritt auf, wenn sie auf 100 % gleitet, kann sie nicht mehr nach links gleiten (wenn Sie weiter gleiten). , es wird kein Bild angezeigt), und ich bin dabei. Der Effekt, den einige andere Plug-Ins beobachten, besteht darin, dass sich der Schieberegler von slider_box jede Sekunde von -20 % auf 0 und dann auf -20 % ?ndert Wenn slider_box auf 100 % gleitet und dann wieder gleitet, verl?sst es den Bereich. Die Frage ist, wie diese Plug-Ins mit der ?nderung von slider_box von -20 % auf 0 und dann auf -20 % umgehen , ich habe zuerst versucht, den letzten Schiebestil zu l?schen und dann dieses Mal den Schiebestil festzulegen:
function slide(){
list.style.transform = "translateX(-20%)";
if(test<5){
// list.style.transform = "translateX(-"+test*20+"%)";
list.style.transform = "translateX(0)";
test++;
setTimeout("slide()",1000);
}
}
slide();
Aber ich kann die ?nderungen nicht erkennen und es gleitet nicht mehr. Wie soll ich hier damit umgehen, um den gleichen Effekt zu erzielen?
Liegt es daran, dass die Leute dieser Idee nicht folgen? Alles?
Die Kapselung der js-Methode im Plug-in ist zu tiefgreifend, es tut mir leid, dass ich es wirklich nicht verstehe.
Anderer: Plug-in-Link: http://sc.chinaz.com/jiaoben/. ..
小伙看你根骨奇佳,潛力無(wú)限,來(lái)學(xué)PHP伐。
你原來(lái)的方式?jīng)]問(wèn)題的,只是你判斷了 test<5
但卻一直把 test 加。所以把 test++
改成 test = (test + 1) % 5
應(yīng)該就行。
你是想實(shí)現(xiàn)無(wú)縫輪播吧。一般來(lái)說(shuō) 2種思路 1.控制父容器的屬性 2.控制子元素的屬性 比如left,transformX margin 。先要實(shí)現(xiàn)無(wú)縫 也有2種思路 1.前后各多一張圖片,初始化顯示第2張圖片
2.不多圖片,初始化顯示第二張圖片,不過(guò)呢 用戶看到的永遠(yuǎn)都是第二個(gè)位置。
可以看我去年寫的一個(gè)簡(jiǎn)單的無(wú)縫輪播 簡(jiǎn)易無(wú)縫輪播
那個(gè)就是無(wú)縫輪播。
<p style="left: -600px;">
<img src="image/5.jpg" alt="1"/>
<img src="image/1.jpg" alt="1"/>
<img src="image/2.jpg" alt="2"/>
<img src="image/3.jpg" alt="3"/>
<img src="image/4.jpg" alt="4"/>
<img src="image/5.jpg" alt="5"/>
<img src="image/1.jpg" alt="5"/>
</p>
就像這樣,在頭尾各添加一個(gè)副本,再加上輪播到真正的頭尾(即是我代碼的第二個(gè)img和第六個(gè)img),你加上if判斷,判斷你的list.style就OK了