限制:只有HTML,Java腳本(jQuery的)jQuery的隱藏功能有時不爲幻燈片
目標:一個幻燈片,其中的幻燈片可以使用左,右箭頭來改變。
代碼示例1(停止):https://jsfiddle.net/Penguinlay/8syyktd4/1/
HTML
<div class="card">
1
</div>
<div class="card">
2
</div>
<div class="card">
3
</div>
<div class="card">
4
</div>
<div class="card">
5
</div>
<div class="card">
6
</div>
<div class="card">
7
</div>
腳本1
$(document).ready(function() {
var totalCard, first, last, current, old;
first = $(".card:first");
last = $(".card:last");
current = first;
old = first;
$(".card").not(current).hide();
$(document).keydown(function(entry) {
old = current;
if(entry.keyCode == 37) {
if(old == first)
current = first;
else
current = old.prev();
}
if(entry.keyCode == 39) {
if(old == last)
current = last;
else
current = old.next();
}
$(".card").hide();
current.toggle();
});
});
代碼示例2(環繞):https://jsfiddle.net/Penguinlay/8syyktd4/3/
同上HTML 。
腳本2
$(document).ready(function() {
var first, prev, current, next, last;
first = $(".card:first");
last = $(".card:last");
prev = last;
current = first;
next = first.next();
$(".card").not(first).hide();
$(document).keydown(function(e) {
if(e.keyCode == 37) {
next = current;
current = prev;
if(current == first)
prev = last;
else
prev = current.prev();
$(next).fadeOut(1);
}
if(e.keyCode == 39) {
prev = current;
if(current == last)
current = first;
else
current = next;
next = current.next();
$(prev).fadeOut(1);
}
$(current).fadeIn(100);
});
});
問題:
在樣品1中,滑動應該停止上滑動時1左箭頭點擊。它在運行時正常工作,但在訪問其他幻燈片並返回幻燈片1後,向左箭頭單擊幻燈片1不會停止,但會顯示白色屏幕。
因此,我嘗試了樣本2中的一個小小變化的腳本,其中左箭頭單擊幻燈片1並將其導向上一張幻燈片。同樣,它在運行時正常工作,但在訪問其他幻燈片並回到幻燈片1後,向左箭頭單擊幻燈片1不會進入上一張幻燈片,但會顯示白色屏幕。
它不適用於右箭頭。與上述完全相同的問題。
它不適用於最新版本的Chrome,Firefox,Firefox Dev Edition,Microsoft Edge和JSFiddle。
我該怎麼做才能像我預期的那樣工作(分別停在幻燈片1或分別轉到上一張幻燈片)?
謝謝傑拉爾德!它現在工作正常!我將閱讀更多關於jQuery對象平等的內容。 – Penguinlay