var hover_effect;
$(document).on("hover", ".card", function (evt) {
windowWidth = $(window).width();
var id = $(this).attr('id');
var offset = $(this).offset();
var pos = offset.left;
if (windowWidth - pos < 350) {
if (evt.type === "mouseenter") {
hover_effect = setTimeout(function(){
$('#'+id).css('z-index', '9').animate({
marginLeft: '-120',
width: '360px',
height: '510px'
}, 300);
} , 700);
}
else { // mouseleave
clearTimeout(hover_effect);
$('#'+id).animate({
marginLeft: '0',
width: '240px',
height: '340px'
}, 300, function() {
$('#'+id).css('z-index', '1')
})
}
}
else if (pos < 260) {
if (evt.type === "mouseenter") {
hover_effect = setTimeout(function(){
$('#'+id).css('z-index', '9').animate({
width: '360px',
height: '510px'
}, 300);
} , 700);
}
else { // mouseleave
clearTimeout(hover_effect);
$('#'+id).animate({
width: '240px',
height: '340px'
}, 300, function() {
$('#'+id).css('z-index', '1')
})
}
}
else{
if (evt.type === "mouseenter") {
hover_effect = setTimeout(function(){
$('#'+id).css('z-index', '9').animate({
marginLeft: '-60',
width: '360px',
height: '510px'
}, 300);
} , 700);
}
else { // mouseleave
clearTimeout(hover_effect);
$('#'+id).animate({
marginLeft: '0',
width: '240px',
height: '340px'
}, 300, function() {
$('#'+id).css('z-index', '1')
})
}
}
})
这会检查图像是在页面中间,还是在右侧或左侧,然后相应地将其放大。 .on
只能返回一个动作,因此if else
需要返回每个动作。我还使用了回调函数,.css
这样图像在完全缩小之前不会“变平”。随时查看http://magic.cardbinder.com/
谢谢戈什!