在遇到 jquery 鱼眼插件问题后,我决定自己开发一个类似的脚本。(这也是一个很好的做法)。无论如何,我基于 Animate() 函数编写了 2 个 jquery 函数。
最小化气泡
将气泡恢复为默认大小
最大化气泡
使气泡更大,更高并显示另一张图片(该气泡的标题)
jQuery.fn.maximizeBubble = function(){
$(this).animate({
marginTop: '-300px',
width: '300px',
}, {
duration: 200,
specialEasing: {
width: 'linear',
},
complete: function() {
$(this).find("span").css("display" , "inline");
}
});
}
jQuery.fn.minimizeBubble = function(){
$(this).animate({
//top: '+=5',
marginTop: '0',
width: '80px',
}, {
duration: 100,
specialEasing: {
width: 'linear',
},
complete: function() {
$(this).find("span").css("display" , "none");
}
});
}
我还编写了下一个代码:我知道在这种情况下 .each() 函数不是必需的,因为一次只有一个大气泡。
$(document).ready(function() {
//First , the middle one will be big as default.
$('#auto_big').maximizeBubble();
//mouseOver - make it big , onMouseout - Stay Big (do nothing)
$('.dock-item2').mouseover(function() {
//mouseOver on another bubble- minimize the other one and maximize the current
$('.dock-item2').each(function(){
$(this).minimizeBubble();
});
$(this).maximizeBubble();
});
});
(我的代码的 jsFiffle:http: //jsfiddle.net/T7gCL/1/)
问题,正如您在:http: //jsfiddle.net/T7gCL/1/embedded/result/看到的那样,当您将鼠标移动到下一个气泡时,所有气泡都开始“变得疯狂”。
1.你知道这种行为的原因是什么吗?
2.我该如何解决?
3.您对如何改进我的代码有任何建议(例如:而不是each()
)?