查看后从幻灯片中删除 jQuery 幻灯片

发布于 2024-12-29 05:34:34 字数 173 浏览 0 评论 0 原文

我正在处理一些不同的 jQuery 幻灯片,我想到了制作一张介绍幻灯片。一旦访问者看到并阅读了幻灯片,这些信息就毫无用处。以 jQuery Cycle 为例,如何在访问者导航到“幻灯片 2”后删除“幻灯片 1”。

我很想让这种方法发挥作用,而不是使用弹出窗口或计时器功能来删除幻灯片。

有什么想法吗?

I'm working with a few different jQuery slide shows and the idea came to me to have an introduction slide. Once a visitor has seen the slide and read it, the information is useless. Using jQuery Cycle as an example, how could I remove "slide 1" after a visitor navigates to "slide 2".

I would love to get this method to work rather than use a pop up or a timer function to remove the slide.

Any thoughts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烛影斜 2025-01-05 05:34:34

我认为这篇文章会对您有所帮助。在这里,他们提供了一个示例代码,用于在 jQuery 循环插件中添加/删除正在运行的幻灯片放映中的幻灯片。

http://forum.jquery.com/topic/jquery-jquery-cycle-remove-slide

I think this post will help you. Here they have given a work around with sample code to add/remove slides from running slide show in jQuery cycle plug in.

http://forum.jquery.com/topic/jquery-jquery-cycle-remove-slide

一曲琵琶半遮面シ 2025-01-05 05:34:34

据我所知,确实没有办法很好地做到这一点。 jQuery Cycle 插件在调用时会对其将切换的所有元素进行初始化。还有其他后果需要考虑,例如,如果您使用寻呼机,删除后第一个会发生什么?我认为你最好的选择是使用标准的 jQuery 动画效果,并在其回调中启动你的幻灯片。

这是这两个解决方案。首先,jQuery 循环调用自身,在回调时销毁自身,然后重新启动。

http://jsfiddle.net/RQapW/2/

$('div').cycle({
    timeout: 500,
    after: myFunction
});

function myFunction(currSlideElement, nextSlideElement, options, forwardFlag) {
    console.log(currSlideElement.src + ' : ' + nextSlideElement.src);

    //if we are on the second slide then remove the first one and restart slideshow
    if (currSlideElement == $('img')[0] && nextSlideElement == $('img')[1]) {
        $('div').cycle('destroy');
        $(currSlideElement).remove();
        $('div').cycle({
            timeout: 500,
        });    
    }
}

只需使用典型的 jQuery 动画效果即可。

http://jsfiddle.net/RQapW/

$('img.first').load( function() {
    $(this).fadeOut(5000, function() {
        $(this).remove();
        $('body').cycle({timeout: 500});
    })
});

There isn't really a way to do this nicely as far as I know. The jQuery Cycle plugin initializes when it is called with all the elements it will toggle through. There are other ramifications to consider, like if you were using a pager what happens to the first to it after a removal? I think your best bet is to use a standard jQuery animation effect, and in its callback initiate your slideshow.

So here are those two solutions. First, jQuery cycle that calls itself, on callback destroys itself and then restarts.

http://jsfiddle.net/RQapW/2/

$('div').cycle({
    timeout: 500,
    after: myFunction
});

function myFunction(currSlideElement, nextSlideElement, options, forwardFlag) {
    console.log(currSlideElement.src + ' : ' + nextSlideElement.src);

    //if we are on the second slide then remove the first one and restart slideshow
    if (currSlideElement == $('img')[0] && nextSlideElement == $('img')[1]) {
        $('div').cycle('destroy');
        $(currSlideElement).remove();
        $('div').cycle({
            timeout: 500,
        });    
    }
}

Just use typical jQuery animation effect.

http://jsfiddle.net/RQapW/

$('img.first').load( function() {
    $(this).fadeOut(5000, function() {
        $(this).remove();
        $('body').cycle({timeout: 500});
    })
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文