5

到目前为止,KnockoutJS 真的很好用,但我是这个框架的新手。我正在尝试创建一个选项卡式界面,例如 4 个链接和一个公共显示区域。单击链接可利用 Knockout 的模板系统并切换模板。这一直很好,但我想在模板切换之间添加某种动画。

我怎样才能做到这一点?我已经阅读了一些关于 beforeRemove/afterAdd 的内容,但这似乎只适用于 observableArrays。我知道 KnockoutJS 支持动画/自定义绑定(我更直接地将它们用于我页面上的其他元素)。

如果我的整个方法不正确,是否有更好的方法来制作选项卡式界面以轻松获得转换?

这是我现在的代码。

的HTML:

<div class="Page">
    <span data-bind="template: {name: current_page()}"></span>
</div>
<script type="text/html" id="Home">
    <!-- Home content -->
</script>
<script type="text/html" id="Tab1">
    <!-- Tab1 content -->
</script>

Javascript(淘汰赛的 ViewModel):

this.current_page  = ko.observable("Home")
//later on...
this.current_page("Tab1");
4

1 回答 1

9

您可以使用模板绑定afterRender的属性:

<span data-bind="template: {name: current_page(), afterRender: animatePageChange }"></span> 

..然后在您的视图模型上,您可以添加您喜欢的任何动画:

animatePageChange: function() { $('#content').hide(); $('#content').fadeIn(3000); }

我在http://jsfiddle.net/unklefolk/v3JMS/1/上做了一个简单的演示

于 2012-05-29T09:25:18.403 回答