使用Javascript缓慢过渡到悬停状态

使用Javascript缓慢过渡到悬停状态,javascript,jquery,css,mootools,zooming,Javascript,Jquery,Css,Mootools,Zooming,我正在研究css,当鼠标悬停在图像上时,它会变大。e、 g #image-div img { width:100px; height:100px;} #image-div:hover img { width:200px; height:200px;} 现在我想让它有一点生气。就像它会慢慢放大一样,鼠标一放,它就会慢慢缩小。请帮忙 注意:我对javascript不是很熟悉。研究该方法并将其与。这将允许您在鼠标悬停在特定元素上时应用特定的转换,在本例中,可根据需要进行缩放。查看该方法并将其与匹配。

我正在研究css,当鼠标悬停在图像上时,它会变大。e、 g

#image-div img { width:100px; height:100px;}
#image-div:hover img { width:200px; height:200px;}
现在我想让它有一点生气。就像它会慢慢放大一样,鼠标一放,它就会慢慢缩小。请帮忙


注意:我对javascript不是很熟悉。

研究该方法并将其与。这将允许您在鼠标悬停在特定元素上时应用特定的转换,在本例中,可根据需要进行缩放。

查看该方法并将其与匹配。这将允许您在鼠标悬停在特定元素上时应用特定的转换,在本例中,可根据需要进行缩放。

这些动画通常使用Javascript完成。与手工编写Javascript相比,使用jQuery库可能更容易,其中包括“.animate()”方法。动画方法要求您将目标css属性作为参数,如下所示:

(因为您编写的代码不熟悉Javascript,所以我已经包含了包含jQuery库所需的所有内容)


load(“jquery”,“1.6.4”);
$(文档).ready(函数(){
$(#image div img”).live({mouseenter:myfin,
mouseleave:myfout});
});
函数myfin(){
$(this).animate({height:200,width:200},1000);//1000=1秒动画
}
函数myfout(){
$(this).animate({height:'',width:''},1000);//1000=1秒动画
//将高度和宽度设置为“”将清除插入的样式,保留原始样式
}
然后,您只需在CSS中将高度和宽度设置为100px,并删除#image div:hover定义

如果您想在CSS文件中使用类定义制作动画,可以使用jQuery插件。有关这方面的帮助,请参见以下问题:


这些动画通常使用Javascript完成。与手工编写Javascript相比,使用jQuery库可能更容易,其中包括“.animate()”方法。动画方法要求您将目标css属性作为参数,如下所示:

(因为您编写的代码不熟悉Javascript,所以我已经包含了包含jQuery库所需的所有内容)


load(“jquery”,“1.6.4”);
$(文档).ready(函数(){
$(#image div img”).live({mouseenter:myfin,
mouseleave:myfout});
});
函数myfin(){
$(this).animate({height:200,width:200},1000);//1000=1秒动画
}
函数myfout(){
$(this).animate({height:'',width:''},1000);//1000=1秒动画
//将高度和宽度设置为“”将清除插入的样式,保留原始样式
}
然后,您只需在CSS中将高度和宽度设置为100px,并删除#image div:hover定义

如果您想在CSS文件中使用类定义制作动画,可以使用jQuery插件。有关这方面的帮助,请参见以下问题:


如果不需要支持较旧的浏览器,可以使用CSS3转换属性。它不需要任何javascript,可以在Safari、Firefox和Opera上使用


如果不需要支持较旧的浏览器,可以使用CSS3转换属性。它不需要任何javascript,可以在Safari、Firefox和Opera上使用


对我已经这样做了,但不知何故,我的客户端也需要动画在较旧的浏览器中工作。是的。我已经这样做了,但不知何故,我的客户端也需要动画在较旧的浏览器中工作。这是完美的兄弟。精彩的。非常感谢。标记你的答案。还有一个问题。如果您将鼠标悬停在上方,并快速将鼠标移出10次,它将完成10次的循环。唯一的问题。试试这个:$(“#image div img:not(:animated)”).live({mouseenter:myfin,mouseleave:myfout});那是完美的兄弟。精彩的。非常感谢。标记你的答案。还有一个问题。如果您将鼠标悬停在上方,并快速将鼠标移出10次,它将完成10次的循环。唯一的问题。试试这个:$(“#image div img:not(:animated)”).live({mouseenter:myfin,mouseleave:myfout});
<script src="http://www.google.com/jsapi" type="text/javascript"></script>

<script type="text/javascript">google.load("jquery", "1.6.4");</script>

<script type="text/javascript">

    $(document).ready(function(){

        $("#image-div img").live({mouseenter:myfin,
              mouseleave:myfout});

    });
    function myfin () {
    $(this).animate({height: 200, width: 200},1000); //1000 = 1 second animation
}
function myfout () {
    $(this).animate({height: '', width: ''},1000); //1000 = 1 second animation
    //setting the height and width to '' will clear the inserted style, leaving you with your original style
}
</script>
#image-div img {
    width:100px;
    height:100px;
    transition:all 1s ease-in-out
    -moz-transition:all 1s ease-in-out;
    -webkit-transition:all 1s ease-in-out;
    -o-transition:all 1s ease-in-out;
}
#image-div:hover img {
    width:200px;
    height:200px;
}