我在工作中使用 OpenX,我的老板要求之一是可扩展的横幅。为此(并对整个故事进行了可怕的简化),我制作了这个脚本。
function retro(){
var acs = jQuery('#trial_center').height() - 5;
jQuery('#trial_center').css('height', acs + 'px');
}
jQuery(document).ready(function(){
jQuery("#trial_center").mouseover(function(){
setTimeout("jQuery('#trial_center').css('height', '500px')", 1000);
})
jQuery("#trial_center").mouseleave(function(){
var c = 89;
while (c > 0) {
setTimeout("retro()", 1000);
c--;
}
})
});
我遇到的问题是在 mouseleave 事件中:最初的想法是多次循环(89 次),每次都降低横幅的高度,直到它达到原来的大小。为什么这个?因为我老板想要一个“效果”,而且这个效果必须和客户的闪光灯同步。问题是,显然脚本没有逐步减小他的大小,而是在 setTimeout 调用的总和“之后”进行了所有操作,更新了页面。因此,结果与横幅从展开尺寸缩小到原始尺寸完全一样。
我不知道这有什么问题,或者是否存在其他更智能的解决方案。
任何帮助将不胜感激。
提前致谢