zoukankan      html  css  js  c++  java
  • 简单的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;
                }
  • 相关阅读:
    Java知识汇总第二天
    jvm学习笔记
    java知识汇总的第一天
    全链路压测流量模型
    FunTester测试框架Redis性能测试实践
    FunTester抄代码之路
    Jira API的踩坑记
    把工作讲给家人听
    颇具年代感的《JMeter中文操作手册》
    FunTester框架Redis压测预备
  • 原文地址:https://www.cnblogs.com/fastmover/p/4121473.html
Copyright © 2011-2022 走看看