我将一个小的jquery函数放在一起,在鼠标悬停时放大和缩小图像,同时保持约束框大小不变。
在此演示:http://jsfiddle.net/q9jHu/
效果很好,但是如果你在图像之间快速摆动光标,就会变得混乱。在中间缩放时,脚本会错误地存储大小。我已经尝试将.stop()
添加到等式中,但似乎无法修复故障。
我猜我应该用.each()
而不是鼠标悬停来存储数据,但我不知道如何做到这一点。
有什么想法吗?
答案 0 :(得分:8)
看这里 http://jsfiddle.net/q9jHu/4/
$('.pixbox img').on({
mouseover: function(){
var $scale = 1.5;
if (!$(this).data('w'))
{
$(this).data('w', $(this).width())
.data('h', $(this).height());
}
$(this).stop(true).animate({
width: $(this).data('w')*$scale,
height: $(this).data('h')*$scale,
left: -$(this).data('w')*($scale - 1)/2,
top: -$(this).data('h')*($scale - 1)/2
}, 'fast');
},
mouseout: function(){
$(this).stop(true).animate({
width: $(this).data('w'),
height: $(this).data('h'),
left: 0,
top: 0
}, 'fast');
}
});
答案 1 :(得分:0)
最简单的就是改变
var $w = $(this).width();
var $h = $(this).height();
到
var $w = 120;
var $h = 180;
//静态值
但是,爽快的解决方案是最佳的