【发布时间】:2018-12-17 12:23:49
【问题描述】:
我有一个播放数组,它使用淘汰赛和一个新项目进行更新。无论如何,当添加视觉效果时,是否可以将字体颜色更改为红色并变回白色。我可以使用下面的绑定轻松地对单个属性执行此操作,但是如何在添加到 dom 的新对象上完成此操作。
ko.bindingHandlers.flash = {
init: function (element, valueAccessor) {},
update: function (element, valueAccessor) {
var updated = valueAccessor().updated;
if (updated()) {
$(element).addClass('flash');
setTimeout(function () {
$(element).removeClass('flash');
}, 1000);
updated(false);
}
}
};
CSS
.flash {
color: red;
-webkit-transition: color 0.4s ease;
-moz-transition: color 0.4s ease;
-o-transition: color 0.4s ease;
transition: color 0.4s ease;
}
HTML
<div class="accordion-inner period-play-by-play" data-bind="foreach: plays">
<div class="play" data-bind="css: {'home-team': $data.IsHomeTeam, 'away-team': !$data.IsHomeTeam, 'modified': $data.isNew}">
<b data-bind="text: $data.Time + ' '"></b>
<span data-bind="text: $data.Team + ' ' + $root.actionName($data.Action)"></span>
<span data-bind="text: $root.actionTypeName($data.ActionType)"></span>
<span>by <i data-bind="text: $data.Name"></i></span>
<!-- ko if: $data.Lead != '' -->
<div class="pull-right" data-bind="text: $data.Lead"></div>
<!-- /ko -->
</div>
</div>
【问题讨论】:
标签: javascript css knockout.js css-animations