两种方式实现鼠标悬停图片逐渐变大

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两种方式实现鼠标悬停图片逐渐变大相关的知识,希望对你有一定的参考价值。

鼠标悬停图片逐渐变大这是一个很常见的效果,这里推荐两种方式,各有优缺点:

1.利用js,通过定时器实现宽高的加减。

//鼠标移动图片变大
function change_large(obj,speed,target_width,target_height){
    var timer = null;
    var bengin_width = 140;//初始宽度
    var bengin_height = 180;//初始高度
    clearInterval(timer);
    timer = setInterval(function(){
        if(bengin_width == target_width && bengin_height == target_height){
            clearInterval(timer);
        }
        else{
            //alert(obj);
            bengin_width += speed;
            bengin_height += speed;
            obj.css("width",bengin_width);
            obj.css("height",bengin_height);
        }
    }, 1);
}
//鼠标移动图片变小
function change_small(obj,speed,target_width,target_height){
    var timer = null;
    var bengin_width = 160;
    var bengin_height = 200;
    clearInterval(timer);
    timer = setInterval(function(){
        if(bengin_width == target_width && bengin_height == target_height){
            clearInterval(timer);
        }
        else{
            //alert(obj);
            bengin_width += speed;
            bengin_height += speed;
            obj.css("width",bengin_width);
            obj.css("height",bengin_height);
        }
    }, 1);
}

$(".div_item").mouseenter(function(){
    var obj = $(this).children("img");
    change_large(obj,1,160,200);
});
$(".div_item").mouseleave(function(){
    var obj = $(this).children("img");
    change_small(obj,-1,140,180);
});

2.第二种比较简答,直接上jquery的animate()

$(".div_item").mouseenter(function(){
    $(this).children("img").animate({
        height:‘+=20px‘,
        width:‘+=20px‘
    },100);
});
$(".div_item").mouseleave(function(){
    $(this).children("img").animate({
        height:‘-=20px‘,
        width:‘-=20px‘
    },100);
});

两种比较起来,第二种会导致当鼠标过一次就会变大缩小一次,会造成次数过多,与实际演示的不匹配,建议用第一种,第一种也还可以改进。

 

以上是关于两种方式实现鼠标悬停图片逐渐变大的主要内容,如果未能解决你的问题,请参考以下文章

qt鼠标悬停在按钮变大

鼠标移动到图片上图片逐渐变大变清晰(带有过渡效果)

CSS如何实现鼠标悬停在图片上底部弹出文字内容?

鼠标悬停图片移动的效果

HTML图片鼠标悬停效果设置!

wordpress里用啥插件或代码能实现鼠标悬停图片上出现文字说明的效果?