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包括小提琴。