-1

目前这导致(图像)淡出功能结束,然后淡入功能触发。我需要图像交叉淡化和每个图像的不透明度重叠。我无法完成这项工作。想法?

_initFade: function () {
  this._timer = Y.later(this._intervalDuration, this, this._startPeriod, [], false);

},

_startPeriod: function () {
  this._timer = Y.later(this._intervalDuration, this, this._fadeOut, [], true);
  this._fadeOut();
},

_fadeOut: function(){
  var host = this.get('host');
  this._animOut.set('node', host._getCurrentBlock());
    this._animOut.once('end', this._fadeIn, this);
  this._animOut.run();      
},

_fadeIn: function(){
  var host = this.get('host'),
      blocks = host.get('blocks'),
      index = host.get('index');
      index = host._moveIndex(host._getNextIndex());

  var nextBlock = blocks.item(index);
  this._transparent(nextBlock);
  host.syncUI();
  this._animIn.set('node', nextBlock);
  this._animIn.run();
},
4

1 回答 1

0

YUI 不支持同步运行的多个动画。但是看看 Y.Anim 的 'tween' 事件。动画的每一帧都会调用它。因此,您可以使用动画淡化一张图像,并在补间事件期间调整第二张图像的不透明度。

例如,我使用补间事件同时为多个项目设置动画:

var someNode = Y.Node.create("<div></div>"); // invisible div to animate
Y.one(document.body).appendChild(someNode);
var anim = new Y.Anim({
    node: someNode,
    duration: 0.25,
    from: { color: 'red' },
    to: { color: 'white' } 
});
anim.on('tween', function(event){
    Y.StyleSheet().set('input.text.error', { backgroundColor: someNode.getStyle('color') });
    // other animations
});
于 2012-08-06T22:40:14.140 回答