“scrollLoading.js”为什么不能被“Zepto”使用???

tjtest_003 2015-08-09 07:16:33
这是一个实现图片滚动加载的函数,作者地址:http://www.zhangxinxu.com/wordpress/2010/11/jquery%E9%A1%B5%E9%9D%A2%E5%9B%BE%E7%89%87%E7%AD%89%E5%85%83%E7%B4%A0%E6%BB%9A%E5%8A%A8%E5%8A%A8%E6%80%81%E5%8A%A0%E8%BD%BD%E5%AE%9E%E7%8E%B0/

问题一:
这是一个Jquery的类库,为什么直接将“(jQuery)”修改为“(Zepto)”不可以使用???

jQuery和Zepto的语法不是一样的吗???


/*!
* jquery.scrollLoading.js
* by zhangxinxu http://www.zhangxinxu.com
* 2010-11-19 v1.0
* 2012-01-13 v1.1 偏移值计算修改 position → offset
* 2012-09-25 v1.2 增加滚动容器参数, 回调参数
*/
(function($) {
$.fn.scrollLoading = function(options) {
[color=#FF0000][b]//问题二:“$.fn.scrollLoading”在Zepto中没有,有没有什么方法可以替代???


[/b][/color]
var defaults = {
attr: "data-url",
container: $(window),
callback: $.noop
};
var params = $.extend({}, defaults, options || {});
//问题三:这里是扩展的什么???

params.cache = [];


//问题四:这个each函数的作用是什么??? 重组是重组的什么???
$(this).each(function() {
var node = this.nodeName.toLowerCase(), url = $(this).attr(params["attr"]);
//重组
var data = {
obj: $(this),
tag: node,
url: url
};
params.cache.push(data);
});


//问题五:“params.callback” 这个函数的作用是什么???
var callback = function(call) {
if ($.isFunction(params.callback)) {
params.callback.call(call.get(0));
}
};


//动态显示数据

var loading = function() {
//问题六:这个函数的作用是什么???
var contHeight = params.container.height();
if ($(window).get(0) === window) {
contop = $(window).scrollTop();
} else {
contop = params.container.offset().top;
}

$.each(params.cache, function(i, data) {
var o = data.obj, tag = data.tag, url = data.url, post, posb;

if (o) {
post = o.offset().top - contop, post + o.height();

if ((post >= 0 && post < contHeight) || (posb > 0 && posb <= contHeight)) {
if (url) {
//在浏览器窗口内
if (tag === "img") {
//图片,改变src
callback(o.attr("src", url));
[color=#FF0000][b]//问题七:这里使用回调函数“callback”的作用是什么???

[/b][/color]
} else {
o.load(url, {}, function() {
callback(o);
//问题八:整个函数的设计思想是怎样的???

});
}
} else {
// 无地址,直接触发回调
callback(o);
}
data.obj = null;
}
}
});
};

//事件触发
//加载完毕即执行
loading();
//滚动执行
params.container.bind("scroll", loading);
};
})(jQuery);
// })();
//})(Zepto);

...全文
206 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
豪情 2015-08-14
  • 打赏
  • 举报
回复
http://www.lovelucy.info/write-a-jquery-plugin.html 如何写插件。
豪情 2015-08-14
  • 打赏
  • 举报
回复
我试着答一下,并不能完全的解决你的困惑: 这是一个Jquery的类库,为什么直接将“(jQuery)”修改为“(Zepto)”不可以使用??? 1.jQuery和Zepto的语法不是一样的吗??? 他们的语法都是Javascript,但是里边的细节实现是不一样的,有的api zepto是不支持的。 这个百度一下都有答案。 http://blog.csdn.net/kongjiea/article/details/42522305 2.$.fn.scrollLoading 这是一个插件,不是zepto本身包括的,jquery.scrollLoading.js,这个文件就是这个插件的方法。 http://www.jquery001.com/how-to-write-jquery-plugin.html 3. $.extend({}, defaults, options || {}); 这个是参数的覆盖,就是原来有默认的配置,可以根据自己的需求修改。 完全可以看这个文档: http://www.jquery123.com/jQuery.extend/ each在这个网站上可以查到。 5.“params.callback” 这个函数的作用是什么??? 这个就是触发一下回调,简单说就是,插件内部实现的细节不用关心,只通知你,我这边做完了,该你上了,这个callback就是你上的意思。 6.loading 这个函数简单来看,就是等滚动条滚动到底部时加载图片。

/*!
 * jquery.scrollLoading.js
 * by zhangxinxu  http://www.zhangxinxu.com
 * 2010-11-19 v1.0
 * 2012-01-13 v1.1 偏移值计算修改 position → offset
 * 2012-09-25 v1.2 增加滚动容器参数, 回调参数
 */
(function($) {
    $.fn.scrollLoading = function(options) {
        //问题二:“$.fn.scrollLoading”在Zepto中没有,有没有什么方法可以替代???

                
        var defaults = {
            attr: "data-url",
            container: $(window),
            callback: $.noop
        };
        var params = $.extend({}, defaults, options || {});
        //问题三:这里是扩展的什么???

        params.cache = [];


        //问题四:这个each函数的作用是什么???   重组是重组的什么???
        $(this).each(function() {
            var node = this.nodeName.toLowerCase(), url = $(this).attr(params["attr"]);
            //重组
            var data = {
                obj: $(this),
                tag: node,
                url: url
            };
            params.cache.push(data);
        });


        //问题五:“params.callback” 这个函数的作用是什么???
        var callback = function(call) {
            if ($.isFunction(params.callback)) {
                params.callback.call(call.get(0));
            }
        };


        //动态显示数据

        var loading = function() {
            //问题六:这个函数的作用是什么???
            var contHeight = params.container.height();
            if ($(window).get(0) === window) {
                contop = $(window).scrollTop();
            } else {
                contop = params.container.offset().top;
            }

            $.each(params.cache, function(i, data) {
                var o = data.obj, tag = data.tag, url = data.url, post, posb;

                if (o) {
                    post = o.offset().top - contop, post + o.height();

                    if ((post >= 0 && post < contHeight) || (posb > 0 && posb <= contHeight)) {
                        if (url) {
                            //在浏览器窗口内
                            if (tag === "img") {
                                //图片,改变src
                                callback(o.attr("src", url));
                                //问题七:这里使用回调函数“callback”的作用是什么???
                                        
                            } else {
                                o.load(url, {}, function() {
                                    callback(o);
                                    //问题八:整个函数的设计思想是怎样的???

                                });
                            }
                        } else {
                            // 无地址,直接触发回调
                            callback(o);
                        }
                        data.obj = null;
                    }
                }
            });
        };

        //事件触发
        //加载完毕即执行
        loading();
        //滚动执行
        params.container.bind("scroll", loading);
    };
})(jQuery);
// })();
//})(Zepto);
tjtest_003 2015-08-14
  • 打赏
  • 举报
回复
又人会回答吗???
starrycheng 2015-08-14
  • 打赏
  • 举报
回复
$.fn.scrollLoading 在zepto中没有吧
内容概要:本文围绕面向新能源容量提升的智能软开关(SOP)在配电网重构中的应用展开研究,提出一种基于Matlab的优化模型实现方法。通过引入SOP这一先进电力电子装置,实现对配电网拓扑结构的灵活调控,有效提升分布式新能源(如光伏、风电)的接入能力与消纳水平。研究重点在于构建以降低网络损耗、改善电压质量、提高新能源利用率为目标的配电网重构数学模型,并结合智能优化算法进行求解。文中详细阐述了模型构建思路、辐射状拓扑约束、潮流计算、SOP运行特性建模及求解流程,通过Matlab编程实现仿真验证,充分展示了该方法在提升配电网灵活性与新能源承载能力方面的有效性与实用价值。; 适合人群:具备电力系统分析、优化算法理论基础,熟悉Matlab编程环境,从事新能源并网、主动配电网优化、电力系统规划与运行等领域的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握智能软开关(SOP)的工作原理、数学建模及其在配电网中的灵活调控作用;② 学习并实现基于优化算法的配电网动态重构技术,以增强系统对新能源的接纳能力;③ 利用Matlab平台开展电力系统仿真分析,服务于学术研究、毕业设计或实际工程项目的技术验证与方案优化。; 阅读建议:此资源侧重于模型构建与算法实现,建议读者结合Matlab代码深入理解优化模型的建立过程与求解细节,尝试在IEEE标准测试系统(如33节点、69节点系统)上复现结果,并进一步探究不同场景下SOP配置对重构效果的影响,以深化对现代配电网智能化调控技术及其在新型电力系统中关键作用的理解。
内容概要:本文档围绕“风储VSG-基于虚拟同步发电机的风储并网系统Simulink仿真”展开,系统介绍了采用虚拟同步发电机(VSG)控制策略的风电与储能联合并网系统的建模与仿真方法。通过Simulink平台构建完整的电力系统动态模型,重点实现VSG的关键控制逻辑,以提升新能源并网的稳定性、惯性响应与频率支撑能力。文档不仅涵盖核心仿真模型,还整合了大量相关前沿研究内容,如混合储能调频、微电网优化、电动汽车可调能力评估、智能算法在电力系统中的应用等,并提供丰富的Matlab/Simulink代码实例,具有较强的科研复现价值和技术参考意义。; 适合人群:具备电力系统基础理论知识和Matlab/Simulink仿真能力的研究生、科研人员及从事新能源发电、储能控制、智能电网等领域工作的工程技术人员;特别适用于正在开展风储协同控制、虚拟同步机、构网型变流器等相关课题研究的高校师生。; 使用场景及目标:① 深入理解虚拟同步发电机(VSG)在风储并网系统中的控制原理与技术优势;② 借助提供的仿真模型与代码完成科研论文复现、算法验证与系统性能测试;③ 探索新能源高渗透背景下提升电网稳定性的关键技术路径,包括惯量模拟、一次频率响应、储能协同控制等。; 阅读建议:建议读者按照文档结构循序渐进地学习,优先下载并运行配套的Simulink模型与Matlab代码,结合VSG控制策略的设计细节进行调试与分析,同时可关注公众号“荔枝科研社”获取完整资源包及持续的技术支持,以提升科研效率与创新能力。

87,987

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧