dro*_*ooh 4 html javascript css jquery jquery-cycle2
我已经使用 jQuery Cycle 2 好几年了,想知道是否有一种方法可以在不需要 jQuery 的情况下完成大部分功能?http://jquery.malsup.com/cycle2/faq/
这是一个基本的 CSS 淡入/淡出循环过渡。
var actual = 0;
var total = 3;
function addClass(elem, name) {
elem.className = elem.className + " " + name;
}
function deleteClass(elem, name) {
var c = elem.className;
elem.className = c.replace(name, "").replace(/ /g, " ").replace(/^ | $/g, "");
}
function nextImg() {
var e;
e = document.getElementById("img" + actual);
deleteClass(e, "visible");
actual++;
if (actual > total - 1) actual = 0;
e = document.getElementById("img" + actual);
addClass(e, "visible");
}
var slider = setInterval(nextImg, 3000);Run Code Online (Sandbox Code Playgroud)
.slide {
border: none;
opacity: 0;
position: absolute;
top: 0;
left: 0;
-webkit-transition: opacity .300s linear;
-moz-transition: opacity .300s linear;
-o-transition: opacity .300s linear;
transition: opacity .300s linear;
}
.visible {
opacity: 1;
}Run Code Online (Sandbox Code Playgroud)
<div class="header">
<span id="img0" class="slide visible"><img src="1.jpg">Orlandos studio</span>
<span id="img1" class="slide"><img src="2.jpg">Fida in Van</span>
<span id="img2" class="slide"><img src="3.jpg">Eternalife Productions</span>
</div>Run Code Online (Sandbox Code Playgroud)
我确信有一种更短的方法可以做到这一点,但是,这是我的看法。执行相同的操作,只是时间短一些。
var parent = document.getElementsByClassName("header")[0];
let i = 1;
let l = parent.children.length;
function imgCycle() {
let pre = parent.children[((i - 1) < 0) ? l - 1 : i - 1]; // get previous holder of visible
pre.className = pre.className.replace("visible", "");
let e = parent.children[i];
e.className += "visible";
i = (i + 1) % l; // Make it loop around
}
var slider = setInterval(imgCycle, 3000);Run Code Online (Sandbox Code Playgroud)
.slide {
border: none;
opacity: 0;
position: absolute;
top: 0;
left: 0;
-webkit-transition: opacity .300s linear;
-moz-transition: opacity .300s linear;
-o-transition: opacity .300s linear;
transition: opacity .300s linear;
}
.visible {
opacity: 1;
}Run Code Online (Sandbox Code Playgroud)
<div class="header">
<span id="img0" class="slide visible"><img src="1.jpg">Orlandos studio</span>
<span id="img1" class="slide"><img src="2.jpg">Fida in Van</span>
<span id="img2" class="slide"><img src="3.jpg">Eternalife Productions</span>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2543 次 |
| 最近记录: |