Javascript 在给定时间间隔内调整图像大小的Web技术

Javascript 在给定时间间隔内调整图像大小的Web技术,javascript,image,html,Javascript,Image,Html,有没有一种技术可以在给定的时间间隔内调整图像的大小 我想做的是有一个图像,当鼠标滚动时,它应该调整图像的大小,使其更大。我所能找到的只是可以立即调整图像大小的简单滚动脚本。我想用大约一秒钟的时间来做 作为一种必须,它不能滞后和破坏视觉体验。如果可能的话,我正在寻找javascript、jQuery或HTML5的方法;其他建议很受欢迎,但没有flash。您可以在jQuery中这样做 var factor = 2; $('#foo').mouseover(function() { $(th

有没有一种技术可以在给定的时间间隔内调整图像的大小

我想做的是有一个图像,当鼠标滚动时,它应该调整图像的大小,使其更大。我所能找到的只是可以立即调整图像大小的简单滚动脚本。我想用大约一秒钟的时间来做


作为一种必须,它不能滞后和破坏视觉体验。如果可能的话,我正在寻找javascript、jQuery或HTML5的方法;其他建议很受欢迎,但没有flash。

您可以在jQuery中这样做

var factor = 2;

$('#foo').mouseover(function() {
    $(this).animate({
        top: '-=' + $(this).height() / factor,
        left: '-=' + $(this).width() / factor,
        width: $(this).width() * factor
    });
});

其他技术是

您可以在jQuery中这样做

var factor = 2;

$('#foo').mouseover(function() {
    $(this).animate({
        top: '-=' + $(this).height() / factor,
        left: '-=' + $(this).width() / factor,
        width: $(this).width() * factor
    });
});

其他技术是

CSS3转换非常简单:

.myImg
{
    width: 200px;
    transition-duration: 1s;
    -webkit-transition-duration: 1s;
}
.myImg:hover
{
    width: 300px;
}

演示:

CSS3转换非常简单:

.myImg
{
    width: 200px;
    transition-duration: 1s;
    -webkit-transition-duration: 1s;
}
.myImg:hover
{
    width: 300px;
}

演示:

您可以用普通的javascript实现这一点,尽管动画总是出人意料地复杂,尤其是当您希望在鼠标离开图像后图像收缩时。制作一个对象来存储状态可能是最好的解决方案,而且适应性也很强(其他图像、其他类型的动画)

newgrowingImage('myImage',2100);
函数增长图像(id、因子、持续时间){
var el=document.getElementById(id),
原始宽度=标高偏移网络宽度,
原始高度=视线外的标高,
计时器,
阶段=0,
帧率=17,
maxStage=持续时间/帧速率;
el.onmouseover=函数(){
制作动画(1);
};
el.onmouseout=函数(){
动画(-1);
};
函数动画(方向){
清除间隔(计时器);
计时器=设置间隔(函数(){
阶段+=方向;
if(stage=maxStage){
阶段=最大阶段;
清除间隔(计时器);
}
var标度=1+(因子-1)*阶段/maxStage;
el.style.width=原始宽度*刻度+px';
el.style.height=原始高度*刻度+px';
},帧率);
}
}

如果精确的计时对您很重要,您可能需要调整它,以便它跟踪当前动画运行的时间量。

您可以在普通javascript中执行此操作,尽管动画总是出人意料地复杂,特别是如果您希望在鼠标移离图像后图像收缩。制作一个对象来存储状态可能是最好的解决方案,而且适应性也很强(其他图像、其他类型的动画)

newgrowingImage('myImage',2100);
函数增长图像(id、因子、持续时间){
var el=document.getElementById(id),
原始宽度=标高偏移网络宽度,
原始高度=视线外的标高,
计时器,
阶段=0,
帧率=17,
maxStage=持续时间/帧速率;
el.onmouseover=函数(){
制作动画(1);
};
el.onmouseout=函数(){
动画(-1);
};
函数动画(方向){
清除间隔(计时器);
计时器=设置间隔(函数(){
阶段+=方向;
if(stage=maxStage){
阶段=最大阶段;
清除间隔(计时器);
}
var标度=1+(因子-1)*阶段/maxStage;
el.style.width=原始宽度*刻度+px';
el.style.height=原始高度*刻度+px';
},帧率);
}
}

如果精确计时对您很重要,您可能需要对此进行调整,以便它跟踪当前动画运行的时间量。

是否可以指定动画应出现的时间段?是否可以指定动画应出现的时间段?完美+1包括小提琴。完美+1包括小提琴。