Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | 1x 1x 1x 1x 5x 1x 5x 5x 1x 1x 4x 2x 2x 2x 2x 1x | /**
* 封装闪烁动作
* @method fx/flashAction
* @param {object} options 选项
* @param {number} [options.times=3] 闪烁次数,默认3次
* @param {number} [options.delay=100] 闪烁间隔时间(ms)
* @param {function} [options.actionOdd] 奇数回调
* @param {function} [options.actionEven] 偶数回调
* @param {function} [options.recover] 状态恢复回调
* @example
* var $flashAction = require('@spore-ui/kit/packages/fx/flashAction');
* // 文字闪烁,奇数次呈现为红色,偶数次成纤维蓝色,动画结束呈现为黑色
* var text = $('#target span.txt');
* $flashAction({
* actionOdd : function (){
* text.css('color', '#f00');
* },
* actionEven : function (){
* text.css('color', '#00f');
* },
* recover : function (){
* text.css('color', '#000');
* }
* });
*/
var $assign = require('../obj/assign');
function flashAction(options) {
var conf = $assign({
times: 3,
delay: 100,
actionOdd: null,
actionEven: null,
recover: null,
}, options);
var queue = [];
for (var i = 0; i < conf.times * 2 + 1; i += 1) {
queue.push((i + 1) * conf.delay);
}
queue.forEach(function (time, index) {
setTimeout(function () {
if (index >= queue.length - 1) {
Eif (typeof conf.recover === 'function') {
conf.recover();
}
} else if (index % 2 === 0) {
Eif (typeof conf.actionEven === 'function') {
conf.actionEven();
}
} else Eif (typeof conf.actionOdd === 'function') {
conf.actionOdd();
}
}, time);
});
}
module.exports = flashAction;
|