javascript – 如何使用knockout使窗口大小可观察

前端之家收集整理的这篇文章主要介绍了javascript – 如何使用knockout使窗口大小可观察前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试对浏览器窗口执行某些操作:

>是否可以使用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%和margin-left是在场景中居中的好方法,因为即使调整窗口大小,它也会自动生效.显然,如果divs本身调整大小,你需要重新计算左边距,这可能总是绑定到viewmodel上的值.希望这可以帮助.

猜你在找的JavaScript相关文章