• 简单的jQuery扩展函数-让函数缓冲执行


    $.fn.retarder = function(delay, method) {
        var node = this;
        if (node.length) {
            if (node[0]._timer_) clearTimeout(node[0]._timer_);
            node[0]._timer_ = setTimeout(function() {
                method(node);
            },
            delay);
        }
        return this;
    };

    原理就是用了setTimeout这函数, 使用方法

                $(div).retarder(150,
                function(i) {
                    box.css({
                        height: box[0].hei - 50,
                         box[0].wid,
                        overflow: 'hidden'
                    });
                    i.css(animate.from).stop(true, true).animate(animate.to, {
                        duration: 200,
                        complete: function() {
                            if (!$.browser.msie) div.css('opacity', 1);
                            box.css('display', 'none')
                        }
                    })
                })

    使用实例基于缓冲器做成的图片轮播渐显插件如下:

    HTML

                    <div>
                        <img src="/images/1.png" />
                    </div>
                    <div>
                        <img src="/images/2.png" />
                    </div>
                    <div>
                        <img src="/images/3.png" />
                    </div>
                    <div>
                        <img src="/images/4.png" />
                    </div>
                    <div>
                        <img src="/images/5.png" />
                    </div>
                </div>

    jQuery

            $.fn.initSlideshow = function () {
                var self = $(this);
                self.find("div").each(function (n) {
                    var This = $(this);
                    This.retarder(n * 2000, function (node) {
                        node.fadeIn(1000, function () {
                            if (n == self.find("div").length - 1) {
                                /*self.find("div").fadeOut(1000).retarder(2000, function (node) {
                                    node.fadeIn(1000);
                                });*/
                                self.find("div").retarder(5000, function (node) {
                                    node.fadeOut(1000);
                                });
                                self.retarder(7000, function (node) {
                                    node.initSlideshow();
                                });
                            }
                        });
                    });
                });
            };
    

     CSS

            #slideshow {
                width: 1040px;
                height: 345px;
                padding-left: 10px;
            }
    
                #slideshow div {
                    float: left;
                    height: 345px;
                    line-height: 345px;
                    display: none;
                }
  • 相关阅读:
    装饰器 转载自 http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html
    no_merge hint
    优化实例- not use hash to avoid temp space issue
    明日计划
    优化实例- not in 和 not exists
    insert into varchar2(8000)
    图像的批处理
    图像数据类型及颜色空间转换
    图像的读取,显示与保存(基于skimage模块)
    图像直方图
  • 原文地址:https://www.cnblogs.com/fastmover/p/4121473.html
Copyright © 2020-2023  润新知