- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 foreach 绑定(bind)和 beforeRemove 回调,以便为我的列表项的删除设置动画。当我移除之前移除的项目上方的项目时,它工作正常,但是当我尝试移除之前移除的项目下方的项目时,转换无法正常工作。
这是一个说明我的问题的 jsfiddle:http://jsfiddle.net/tylerweeres/2szjxzs0/2/
HTML
<h3>Animations</h3>
<div data-bind="foreach: { data: people, beforeRemove: animateOut }">
<div style="padding: 5px;" class="person">
<span data-bind="text: name" style="display: inline-block; width: 200px;"></span>
<button style="padding: 5px 15px;" data-bind="click: $parent.removePerson">Remove</button>
</div>
</div>
.person {
font-family: georgia;
padding: 5px;
transition: all 600ms ease-in-out;
transform-origin: 75px;
}
.person.remove {
transform: translateX(2000px) rotateZ(540deg);
}
function vm () {
"use strict";
var me = this;
me.people = ko.observableArray([
{ "name": "Irma Olsen" },
{ "name": "Winifred Cabrera" },
// ...
{ "name": "Lucius Howard" },
{ "name": "Hedda Santana" }
]);
me.removePerson = function (person) {
me.people.remove(person);
};
me.animateOut = function animateOut(node, i, person) {
// Make sure it's not a text node
if (node.nodeType == Node.ELEMENT_NODE) {
node.classList.add("remove");
}
}
}
ko.applyBindings(new vm());
最佳答案
这是一个奇怪的问题,但我认为这与疯狂的浏览器渲染逻辑有关。您需要强制进行未发生的重绘。在某一时刻,我们有:
<div class="person remove">
<div class="person">
<div class=person>
<div class=person>
remove
不再类——当我们添加
remove
类,Knockout 删除数据,但浏览器不知道更新此 div,因此它不执行转换,这意味着
transitionEnd
不会触发,div 也不会被删除。
node.offsetHeight
(一个有效的表达)。
关于knockout.js - 我遇到了 knockout 的 beforeRemove 回调和 CSS 转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25211934/
我有一个在页面加载时通过 Ajax 获取的用户数组,并使用 foreach 绑定(bind)列出它们,如下所示: 我希望列表在页面加载时显示,没有我使用 afterAdd 对其应用的 fadeIn(
我在 knockout js 和将可观察数组显示为列表时遇到问题;在 beforeRemove 动画运行时添加项目时,被移除的元素将移动到列表的底部,而不是停留在其位置,直到动画结束并且元素被移除。
我一直在阅读 knockoutjs docs about the template binding 。具体来说,我希望能够 Hook 渲染模板的时刻,以及渲染模板被删除之前的时刻(例如,通过更改绑定(
我在尝试使用 jquery 动画时面临一些挑战,例如 fadeIn() fadeOut() with knockout。 没有动画的实例:http://jsfiddle.net/LkqTU/23801
我在让 KnockoutJs beforeRemove 和 afterAdd 处理程序触发时遇到了一些问题。 这是相关的代码片段 function viewModel(list) { var
我试图阻止用户在 React Native 中录制视频时通过 Android 后退按钮或手势返回。根据 documentation对于 React Navigation,应该使用 beforeRemo
使用 KnockoutJS 3.3.0 和原始 Ducksboard gridster 存储库的 0.5.6 版本。我有一个 observableArray 绑定(bind)到我的 gridster
我正在使用 foreach 绑定(bind)和 beforeRemove 回调,以便为我的列表项的删除设置动画。当我移除之前移除的项目上方的项目时,它工作正常,但是当我尝试移除之前移除的项目下方的项目
我的 KnockoutJS 模板如下所示: 当我从 cars() observableArray 中移除一个对象时,我想 hide() 和 remove() 被移除的元素。除了删除元素
我注意到 tabpanel的 beforeremove和 panel的 beforeclose和 close没有开火。另一方面destroy事件进行得很好。是否有任何解决方法或具有相同结果的不同事件?
我正在尝试实现 Adrian Brown 非常好的 Outlook Add-In code 3 次中有 2 次有效。 ItemAdd 和 ItemChange 事件按预期触发,但 MAPIFolder
我是一名优秀的程序员,十分优秀!