87,922
社区成员
发帖
与我相关
我的任务
分享
KISSY.use('gallery/layer-anim/1.0/, dom, event', function (S, LayerAnim, DOM, Event) {
var els = DOM.query("div.overitem");
var els2 = DOM.query("div.overitem2");
var se = S.Event;
for (var i = 0; i < els.length; i++) {
se.on(els[i], 'mouseenter', function () {
var left1 = this.offsetLeft;
var top1 = this.offsetTop;
var label = parseInt(this.getAttribute("dir")) - 1;
new LayerAnim(
{
node: els2[label],
from: {
width: 0,
height: 0,
left: left1,
top: top1
},
to:
{
width: 200,
height: 50,
left: left1,
top: top1
},
duration: 0.5
, align: "sequence"
}).run();
els2[label].setAttribute("lang", "opened");
});
getsss = function () { alert("动画播放结束"); }
els2[i].onmouseleave = function () {
getsss = function () { alert("动画播放结束"); }
var left1 = this.offsetLeft;
var top1 = this.offsetTop;
var label = parseInt(this.getAttribute("dir")) - 1;
if (els2[label].getAttribute("lang") == "opened") {
els2[label].setAttribute("lang", "closed");
new LayerAnim(
{
node: els2[label],
from: {
width: 200,
height: 50,
left: left1,
top: top1
},
to:
{
width: 0,
height: 0,
left: left1,
top: top1
},
duration: 0.5
,complete:getsss;
}).run();
getsss = function () { alert("动画播放结束"); }
}
}
se.on(els[i], 'mouseleave', function (event) {
var isAT = true;
var se = S.Event;
if (window.navigator.userAgent.indexOf("Firefox") >= 1) {
var x = event.clientX;
var y = event.clientY;
var left = this.getBoundingClientRect().left;
var top = this.getBoundingClientRect().top;
var w = this.offsetWidth;
var h = this.offsetHeight;
if (x <= left || y <= top || x >= (left + w) || y >= (top + h)) {
isAT = false;
}
}
else if (this.contains(event.toElement) == false) {
isAT = false;
}
if (!isAT) {
var left1 = this.offsetLeft;
var top1 = this.offsetTop;
var label = parseInt(this.getAttribute("dir")) - 1;
if (els2[label].getAttribute("lang") == "opened") {
els2[label].setAttribute("lang", "closed");
new LayerAnim(
{
node: els2[label],
from: {
width: 200,
height: 50,
left: left1,
top: top1
},
to:
{
width: 0,
height: 0,
left: left1,
top: top1
},
duration: 0.5
, complete: getsss
}).run();
}
}
});
}
});
KISSY.use("anim,node,button",function(S,Anim,Node,Button){
//KISSY 1.2 以前可通过 var Node=S.Node ; var Anim=S.Anim
var anim = Anim(
'#test1',
{
'background-color':'#fcc',
//'border': '5px dashed #999',
'border-wdith':'5px',
'border-color':"#999999",
'border-style':"dashed",
'width': '100px',
'height': '50px',
'left': '900px',
'top': '285px',
'opacity': '.5',
'font-size': '48px',
'padding': '30px 0',
'color': '#FF3333'
},5,
'bounceOut',function(){
alert('demo1 结束');
});
var b = new Button({
content: "开始动画"
});
b.render();
b.on("click", function() {
anim.run();
});
});
他里面加了一个结束执行的函数
function(){
alert('demo1 结束');
}
他就可以,我加到代码就不会执行,程序反而还报错了,不知道是不是版本问题,
getsss=function(label){els2[label].style.display="none";}
els2[i].onmouseleave=function()
{
var left1=this.offsetLeft;
var top1=this.offsetTop;
var label= parseInt(this.getAttribute("dir"))-1;
if(els2[label].getAttribute("lang")=="opened")
{
els2[label].setAttribute("lang","closed");
//alert(label);
new LayerAnim(
{
node: els2[label], // 动画DOM节点,可使用“选择符”(支持的选择符请参考KISSY DOM文档)或原生DOM节点
from:{
width:200,
height:50,
left: left1,
top: top1
},
to: // 动画结束值,即动画结束时的CSS属性值
{
width:0,
height:0,
left: left1,
top: top1
},
duration: 0.5// 动画时长(单位:秒)
}).run(); // 播放动画
setTimeout("getsss('"+label+"')",500);;
}
}