问题描述
|
我正在尝试创建一个简单的图像幻灯片,以根据wordpress的方式淡入和淡出包裹在p标签中的上一个和下一个图像,我设法将其移至下一个图像,但无法获取移至上一张图片。我也希望在单击上一个或下一个时保持连续的永无休止的循环。
这是我的html
<div>
<div id=\"prev\">PrevIoUs Image</div>
<div id=\"next\">Next Image</div>
<div id=\"slides\">
<p class=\"slideWrap\">
<img src=\"\" alt=\"\" title=\"Untitled-2\" class=\"alignnone size-full wp-image-460\" height=\"500\" width=\"500\" />
</p>
<p class=\"slideWrap\">
<img src=\"\" alt=\"\" title=\"fishy\" class=\"alignnone size-full wp-image-369\" height=\"496\" width=\"437\" />
</p>
</div>
</div>
这是我的jQuery
$(\'.slideWrap:not(:first)\').hide();
$currentBox = $(\".slideWrap\");
$(\"#next\").click(function() {
$currentBox.fadeOut(function() {
$currentBox = $currentBox.next();
$currentBox.fadeIn(\'300\');
});
});
$(\"#prev\").click(function() {
$currentBox.fadeOut(function() {
$currentBox = $currentBox.prev();
$currentBox.fadeIn(\'300\');
});
});
这是网址http://satbulSara.com/luke-irwin/rugs/floral/testing-slide/
解决方法
有很多方法可以执行此IMO,但是这应该与您现有的代码非常接近:
$(\'.slideWrap:not(:first)\').hide();
var $boxes = $(\".slideWrap\"),$currentBox = $boxes.first().show();
$(\"#next\").click(function() {
$currentBox.fadeOut(300,function() {
$currentBox = $currentBox.next();
if (!$currentBox.length) {
$currentBox = $boxes.first();
}
$currentBox.fadeIn(300);
});
});
$(\"#prev\").click(function() {
$currentBox.fadeOut(300,function() {
$currentBox = $currentBox.prev();
if (!$currentBox.length) {
$currentBox = $boxes.last();
}
$currentBox.fadeIn(300);
});
});