javascript - 如何在 knockout 和组件之间应用过渡效果

标签 javascript jquery knockout.js knockout-components

是否可以在使用 require 加载的 knockout 组件之间进行动画过渡?那么当 state() 改变时,组件会淡入/滑动到位?

我过去曾使用 fadeVisible 做过类似的事情,但这似乎不适用于 amd/require 和新的组件 api。有任何想法吗?谢谢:)

注册

// Register knockout components
ko.components.register('breadcrumb', { require: './Modules/Breadcrumb/Breadcrumb' });
ko.components.register('splash', { require: './Modules/Splash/Splash' });
ko.components.register('catalogue', { require: './Modules/Catalogue/Catalogue' });
ko.components.register('requests', { require: './Modules/Requests/Requests' });

用法

   <div id="main">

        <breadcrumb></breadcrumb>

        <!-- ko if: state() === 'home' -->
        <splash></splash>
        <!-- /ko -->

        <!-- ko if: state() === 'catalogue' -->
        <catalogue></catalogue>
        <!-- /ko -->

        <!-- ko if: state() === 'requests' -->
        <requests></requests>
        <!-- /ko -->

   </div>

fiddle :How to apply transition effects between knockout amd components

最佳答案

创建一个自定义绑定(bind),如下例所示:http://knockoutjs.com/examples/animatedTransitions.html

实际上,文档规定任何控件绑定(bind)属性必须放置在组件外部:

Therefore if you want to use a control flow binding such as if or foreach, then you must wrap it around your custom element rather than using it directly on the custom element

但是,自定义绑定(bind)不能在虚拟元素中使用,因此有必要将组件放置在包装 div

http://knockoutjs.com/documentation/component-custom-elements.html

关于javascript - 如何在 knockout 和组件之间应用过渡效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25767947/

相关文章:

javascript - mapbox gl js - 未捕获的类型错误 : Cannot read property 'classList' of null

javascript - 是否可以使用 CreateJS 使所有脚本都可以访问某个阶段?

javascript - VSCode 调试 Node.js,调试适配器中存在 ES6 未处理错误

Jquery 仅克隆元素的直接子元素

jquery - knockout : Mapping/binding JSON issue

knockout.js - 为 json 项目实现 knockout.js 本地化

javascript - 修改 Twitter Bootstrap 折叠插件以保持 Accordion 打开

javascript - jQuery DataTables - 删除标签

javascript - ASP.NET 服务器控件 - 根据下拉选择显示隐藏文本框

knockout.js - 初始化嵌套数据后,Knockout computed observable 不会更新