【问题标题】:JQuery image gallery non functional fade effectsJQuery 图片库非功能性淡入淡出效果
【发布时间】:2011-06-30 14:09:17
【问题描述】:

这是一个简单的图片库脚本,用于淡入和淡出带有背景图像的 div。它很慢并且无法正常工作。

  • 看起来所有图像都在没有任何动画的情况下一起出现和消失
  • 此图库应将每张图片淡入下一张

    function gallery() {
                timerp = window.setInterval(function() {
                    $('.cornerimg').fadeOut(2000);
    
                    if ($('.cornerimg:visible') == $('.cornerimg').last()) {
                        $('.cornerimg').first().fadeIn(2000);
                    } else {
                        $('.cornerimg').next().fadeIn(2000);
                    };
                }, 6000);
            }
    }
    

你知道它出了什么问题吗?

【问题讨论】:

  • 那里有数以万计的优秀 jQuery 库脚本,几乎所有脚本都内置了许多过渡效果。为什么要重新发明轮子?
  • 因为它是完美运行的 CSS3 过渡图库的备份功能

标签: jquery effects image-gallery


【解决方案1】:

next() 只是为选择器找到下一个兄弟。它不会跟踪您的位置。我会做一个 setInterval 并将当前索引与它一起传递。例如:

function gallery() {
        ind = 0;
        l = $('.cornerimg').length;
        $('.cornerimg').fadeOut(500);        

        window.setInterval( function() {
            if ( ind > 0 ) $('.cornerimg').eq(ind-1).fadeOut(2000);
            if (ind == l) {
                ind = 0;
            }
            $('.cornerimg').eq(ind).fadeIn(500);
            ind++;
        }, 2000 );
}

$(function() { gallery() });

为避免元素移动,请将函数作为回调添加到fadeOut,而不是让它们异步发生。

注意:全局变量通常不是最好的方法,只是为了给你一个想法。更好的形式是有一个使用setTimeout 调用自身并每次传递递增的ind 参数的函数。

未经测试。

【讨论】:

  • 这并不完全正确。此功能与 CSS3 过渡和 addClass 完美配合。我不明白为什么它在 JQUery 中效果如此糟糕。
  • 谢谢,但动画根本没有循环播放。自己试试。我减少了时间以加快速度jsfiddle.net/qUvxh/1
  • 这在小提琴中有效,但在我们的网页上无效。也许您可以看到对我来说根本没有意义的问题 -- golfbrowser.com/courses/wentworth-east 但请确保您使用的浏览器不支持 CSS3,因为已经有一个正常运行的 CSS3 库。
  • 修复您的iscroll.js问题,然后我们可以干净地查看页面。 (对于 IE
  • 完成...现在就试试吧。尽管对于触摸屏设备上的可滚动 div,这已经破坏了我的 iScroll 功能
猜你喜欢
  • 1970-01-01
  • 2011-09-25
  • 2011-10-16
  • 1970-01-01
  • 2011-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多