jquery插件编写思路

function(e) {
    e.fn.floatNav = function(t) {
        var i = e.extend({
            start: null,
            end: null,
            fixedClass: "nav-fixed",
            anchor: null,
            targetEle: null,
            range: 0,
            onStart: function() {},
            onEnd: function() {}
        },
        t),
        s = e(this),
        a = s.height(),
        o = s.width(),
        n = e('<div class="float-nav-wrap"/>');   //以逗号分隔各个值,一次定义多个变量//return 返回用逗号隔开的各个值,这里用到了逗号表单式,把this单签这个对象放到最后,确保逗号表达式返回的是当前的这个jquery对象,这样写,确保了每个逗号表达式中的语句都被执行
        return s.css({            
            height: a,
            width: o
        }),
        s.parent().hasClass("float-nav-wrap") || s.wrap(n.css("height", a)),   //先判断下父级是否有float-nav-wrap这个对象,如果有的话,则执行后面的s.wrap(n.css("height", a))语句
        e(window).bind("scroll",
        function() {
            var t = e(document).scrollTop(),
            a = s.find("a").eq(0).attr("href"),
            o = i.start || s.parent(".float-nav-wrap").offset().top,
            n = i.targetEle ? e(i.targetEle).offset().top: 1e4;
            t > o && (i.end || n) - i.range > t ? (s.addClass(i.fixedClass), i.anchor && a !== i.anchor && s.find("a").attr("href", i.anchor), i.onStart && i.onStart()) : (s.removeClass(i.fixedClass), i.anchor && s.find("a").attr("href", "javascript:;"), i.onEnd && i.onEnd())
        }),
        this
    }
} (jQuery),

 

posted @   一束光  阅读(349)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义

友情链接

CFC4N
点击右上角即可分享
微信分享提示