javascript - 如何在简单的 jquery 幻灯片代码中添加上一个和下一个按钮

标签 javascript jquery html slideshow

我从这个博客中找到了这个简单的 jQuery 幻灯片代码。

http://leavesofcode.net/2012/08/17/simple-slideshow/

它在我现在正在处理的项目中非常有效,我可以在其中使用 jQuery load() 函数调用图像,幻灯片仍然有效。尽管如果可能的话,我想在同一代码中实现上一个和下一个按钮。任何帮助将非常感激。请帮忙谢谢。

这是代码:http://jsfiddle.net/mblase75/CRUJJ/

<script>
$(document).ready(function() {
    setInterval(function() {
        var $curr = $('.slideshow img:visible'), // should be the first image
            $next = ($curr.next().length) ? $curr.next() : $('.slideshow img').first();
            // if there isn't a next image, loop back to the first image
        $next.css('z-index',2).fadeIn('slow', function() { // move it to the top
            $curr.hide().css('z-index',0); // move this to the bottom
            $next.css('z-index',1);        // now move it to the middle
        });
    }, 6000); // milliseconds
});
</script>

<div class="slideshow">
    <img src="first-image.jpg" width="500" height="100" alt="first image">
    <img src="second-image.jpg" width="500" height="100" alt="second image">
    <img src="third-image.jpg" width="500" height="100" alt="third image">
    <img src="fourth-image.jpg" width="500" height="100" alt="fourth image">
</div>

<style>
.slideshow {
    position: relative; /* necessary to absolutely position the images inside */
    width: 500px; /* same as the images inside */
    height: 100px;
}
.slideshow img {
    position: absolute;
    display: none;
}
.slideshow img:first-child {
    display: block; /* overrides the previous style */
}
</style>

最佳答案

您需要为 getNext 和 getPrev 创建函数,并将它们作为事件处理程序附加到要在幻灯片放映中前后移动的元素。

我创建了一个由 getNext 和 getPrev 函数共享的通用转换函数,以便可以共享转换代码。

在下面的示例中,单击下一个或上一个按钮将暂停幻灯片放映,但很容易将其更改为继续自动转换。

Working Demo

var interval = undefined;
$(document).ready(function () {
    interval = setInterval(getNext, 2000); // milliseconds
    $('#next').on('click', getNext);
    $('#prev').on('click', getPrev);
});

function getNext() {
    var $curr = $('.slideshow img:visible'),
        $next = ($curr.next().length) ? $curr.next() : $('.slideshow img').first();

    transition($curr, $next);
}

function getPrev() {
    var $curr = $('.slideshow img:visible'),
        $next = ($curr.prev().length) ? $curr.prev() : $('.slideshow img').last();
    transition($curr, $next);
}

function transition($curr, $next) {
    clearInterval(interval);

    $next.css('z-index', 2).fadeIn('slow', function () {
        $curr.hide().css('z-index', 0);
        $next.css('z-index', 1);
    });
}

关于javascript - 如何在简单的 jquery 幻灯片代码中添加上一个和下一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17786805/

相关文章:

javascript - 请解释一下这段代码

php - 在 IE6 中创建 XMLHTTPRequest

javascript - js函数未定义

javascript - Angular Material 菜单在移动设备中触发点击事件 2 次

html - 调整第二个 div 高度

php - 一个类似 facebook 的 php 通知系统

javascript - jQuery Yii 更新数据表,仅当选项卡显示时

javascript - 检查现有数据时出现数组值验证错误

html - 如何设计我想要的导航标签?

html - 将固定高度的行定位在表格内的任何位置