因此,我将 Flash 小部件转换为 HTML/CSS/JS,并且在模拟图像的中心缩放效果时遇到了问题。
所以,目前我在 HTML 中有这样的结构:
<div id="outer">
<img />
</div>
使用类似于以下的 CSS:
#outer{
width: 690px;
height: 440px;
position: relative;
}
#outer img{
width: 690px;
height: 440px;
position: absolute;
top: 0px;
left: 0px;
}
然后在 jQuery 中,我这样做是为了创建缩放效果:
$image = $("#outer img");
scale = 1.16;
var w = parseInt($image.data("width")); //Set earlier to 690px
var h = parseInt($image.data("height")); //Set earlier to 440px
$image
.animate({
width: w*scale,
height: h*scale,
left: -(((w*scale) - w)/2),
top: -(((h*scale) - h)/2)
}, 5000, "linear");
我发现的这张特定图片有点难以看清,但(出于某种原因)在我的客户给我的图片中更容易看到。我看到的是锯齿状/摇晃/抖动的运动,我认为这可能是因为左/上/宽/高的十进制值排列得不够好,无法始终保持居中。
有没有更好的方法来解决这个问题,或者可能有一个可以产生更好结果的缓动函数?
如果有什么我可以澄清的,请告诉我。
谢谢!
编辑:我已经开始考虑是否可以编写一个缓动函数,每次左/上减少 1 时将宽度/高度增加 2 以使其始终保持居中,但我不确定如何在 jQuery 中解决这个问题。我试着弄乱函数的step
参数,animate
但我不知道如何强制左/上属性仅增加/减少整数值(整数)......