这是我的第一个jQuery插件,我认为这是一个非常棒的=)。该插件采用一个元素,并确保它始终在屏幕上。如果元素对于屏幕而言太大,则尽可能多地显示该元素。您只需向上和向下滚动即可测试working example。请注意内容如何尽力与您保持联系。
我的问题是我不知道如何处理窗口布局的更改。假设用户调整窗口大小,我如何让我的插件处理它?我基本上需要从头开始重新计算所有内容。我可以绑定到$(window).resize()
,但我该怎么做?在我的主要js区块?在我的插件中?我在里面做什么?
我感觉这是相对简单的,但我的大脑正在冻结。
答案 0 :(得分:2)
我会有不同的代码结构,如下所示:
(function($){
var _constants = {
default: {}
}
var _variables = {
options: {},
jElement: undefined
}
var _private: {
init: function(jElement, options){
_variables.jElement = jElement;
_variables.options = $.extend({}, _constants.default, options);
_private.setSize();
$(window).resize(_private.setSize);
return jElement;
},
setSize: function(){
}
//... other private methods go here ...
}
$.fn.dynamicSidebar = function(options) {
return _private.init($(this), options);
}
)(jQuery);
编辑相关性