gpt4 book ai didi

javascript - Backbone View 的窗口调整事件

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:50:07 24 4
gpt4 key购买 nike

我在 javascript 中使用 Backbone View 。

我创建了一个 Backbone View ,如下所示:

var MaskView = Backbone.View.extend({
className: "dropdown-mask",
initialize: function(){

},
onClick: function(e){

},
hide: function(){

},
makeCSS: function(){
return {
width : Math.max(document.documentElement.scrollWidth, $(window).width()),
height : Math.max(document.documentElement.scrollHeight, $(window).height())
}
}
});

我想捕获 View 内窗口大小调整的事件。

问题是,当窗口完全加载时,掩码 View 是从上面的主干 View 创建的。现在,当我调整窗口大小时,蒙版仅覆盖部分窗口区域。我希望每次重新加载窗口时, mask 也会根据当前窗口大小动态更改其区域。

我该如何实现?

最佳答案

Backbone 依靠 jQuery(或 zepto)进行 DOM 操作。 jQuery's .resize()是你正在寻找的事件,所以你应该这样写:

var MaskView = Backbone.View.extend({
initialize: function() {
$(window).on("resize", this.updateCSS);
},

updateCSS: function() {
this.$el.css(this.makeCSS());
},

remove: function() {
$(window).off("resize", this.updateCSS);
Backbone.View.prototype.remove.apply(this, arguments);
}
});

也就是说,我敢打赌您根本不需要为此使用 JavaScript。为什么普通的旧 CSS 样式不能解决问题?像这样:

.dropdown-mask {
width: 100%;
height: 100%;
position: fixed;
}

关于javascript - Backbone View 的窗口调整事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17879505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com