如何使用挖空使窗口大小可观察
How to make window size observable using knockout
尝试对浏览器窗口执行某些操作:
- 是否可以使用挖空使窗口大小(
$(window).width(), $(window).height()
)可观察? - 如何将未来添加元素保留在窗口中央?是否可以使用 jquery live 方法或 KNOCKOUT 自定义绑定来完成一些事情?
任何建议表示赞赏!
使它们可观察的唯一方法是将它们代理为可观察的属性。
var yourViewModel = {
width: ko.observable(),
height: ko.observable()
};
var $window = $(window);
$window.resize(function () {
yourViewModel.width($window.width());
yourViewModel.height($window.height());
});
我真的不明白你的第二个问题。你不能只使用css吗?
编辑
第二个问题。一种可能性是编写一个绑定处理程序来执行此操作(未经测试)。
ko.bindingHandlers.center {
init: function (element) {
var $el = $(element);
$el.css({
left: "50%",
position: "absolute",
marginLeft: ($el.width() / 2) + 'px'
});
}
}
50% 和左边距是将内容集中在方案中的好方法,因为即使调整窗口大小,它也会自动工作。显然,如果div 本身调整大小,您需要重新计算左边距,这始终可以绑定到视图模型上的值。希望这有帮助。
为了详细说明 Dean 对他的winsize
自定义绑定处理程序的评论,它是如何使用的:
.JS
ko.bindingHandlers.winsize = {
init: function (element, valueAccessor) {
$(window).resize(function () {
var value = valueAccessor();
value({ width: $(window).width(), height: $(window).height() });
});
}
}
self.windowSize = ko.observable();
.HTML
<div data-bind="winsize: windowSize"></div>
相关文章:
- 窗口大小html css
- Chrome应用程序调整窗口大小保持纵横比
- Adobe Air SDK在页面加载时调整窗口大小
- 窗口大小调整事件在ie7中持续触发
- 使用jQuery可以根据窗口大小更改滑块的css高度
- 引导:响应式设计-当窗口大小从980px调整到979px时执行JS
- 基于浏览器窗口大小的条件 JavaScript 执行
- tinyMCE 4.1.9 和小窗口大小冻结
- 根据窗口大小调整 HTML 中 SVG 图像的大小
- 在浏览器窗口大小调整时更改 JS 逻辑
- 提示不同的Javascript/JQuery在窗口大小调整为低于/高于设置宽度时显示
- Javascript滚动并调整窗口大小
- 画布粒子-在“窗口大小”上更新画布大小
- 基于媒体查询的angular js动画无法调整窗口大小
- Javascript-window.open()弹出窗口大小问题
- Jquery通过媒体查询切换窗口大小的错误
- Javascript:保存和恢复浏览器窗口大小
- 谷歌地图是't加载,直到更改窗口大小
- 黑莓网站:窗口大小(窗口高度)在黑莓模拟器中返回不正确的值
- 如何使用挖空使窗口大小可观察