J'ai un élément, qui devrait ajuster largeur + hauteur selon les propriétés du document. Je dois redimensionner chaque fois que l'utilisateur fait défiler la fenêtre.Lier l'événement à l'objet en JavaScript brut
Y a-t-il une possibilité de lier les événements à cet objet spécifique?
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>
Comme vous pouvez le voir sur la "bindScroll()" - fonction, il ne fait aucun sens en ce moment. Y at-il de toute façon pour accomplir la tâche?
Merci d'avance pour votre aide.
La variable 'W' existe seulement dans la fermeture, et non pas dans le contexte global où votre code est commenté. 'window.addEventListener' devrait faire l'affaire. – Aloso