我有一个元素,它应该根据文档属性调整宽度+高度。我需要调整用户在窗口内滚动的时间。将事件绑定到普通JavaScript中的对象
是否有可能将事件绑定到此特定对象?
var instance = (function() {
var w = window,
d = document,
e = d.documentElement,
g = d.getElementsByTagName('body')[0],
x = w.innerWidth || e.clientWidth || g.clientWidth || 0,
y = w.innerHeight || e.clientHeight || g.clientHeight || 0,
z = Math.max(g.scrollHeight || 0, e.scrollHeight || 0, g.offsetHeight || 0, e.offsetHeight || 0, g.clientHeight || 0, e.clientHeight || 0);
// private
function getMeById(id) {
return d.getElementById(id);
};
// public
return {
updateContainer: function(id) {
console.log('updateContainer');
var container = getMeById(id);
container.style.position = 'absolute';
container.style.width = x + 'px';
container.style.minHeight = z + 'px';
},
bindScroll: function() {
w.addEventListener('scroll', updateContainer(), false);
}
};
})();
instance.updateContainer("test");
/* @TODO: Bind events to object
w.addEventListener('resize',() => {
console.log('resize');
var container = getMeById("test");
updateContainer(container);
}, true);
w.addEventListener('scroll',() => {
console.log('scroll');
var container = getMeById("test");
updateContainer(container);
}, true);
*/
<div id="test"></div>
你可以从看到 “bindScroll()” - 它的作用是没有意义的现在。 无论如何要完成任务吗?
非常感谢您的帮助。
变量'w'只存在于封闭,而不是在全球范围内您的注释的代码。 'window.addEventListener'应该可以做到。 – Aloso