我正在使用 jQuery 的 .css() 函数使用 javascript 在我的网站上重新缩放图像(取决于屏幕大小)。现在我正在尝试对一堆重新缩放的图像进行动画处理,并且性能在旧系统上崩溃了......我的猜测是浏览器在动画的每一步都会重新缩放图像。有什么办法可以防止这种情况发生,例如通过重新缩放图像并将这个重新缩放的版本用于动画?
最大限度
编辑:
function adjustTile(contentHeight)
{
TILE_GLOBAL.values.tileWidth = contentHeight/TILE_GLOBAL.def.tileWidthRatio;
var windowWidth = jq(window).width();
var tileStackDistance = windowWidth / TILE_GLOBAL.values.tiles.length / 3;
var tileOffset = (windowWidth - TILE_GLOBAL.values.tileWidth - tileStackDistance*(TILE_GLOBAL.values.tiles.length-1))/2;
for(var i = 0; i < TILE_GLOBAL.values.tiles.length; i++)
{
var position = tileOffset + tileStackDistance * i;
jq(TILE_GLOBAL.values.tiles[i]) .css({ 'left' : position + 'px',
'z-index' : TILE_GLOBAL.values.tiles.length - i,
'width' : TILE_GLOBAL.values.tileWidth + 'px',
'height' : contentHeight + 'px',
'border' : TILE_GLOBAL.values.tileBorderSize + 'px solid #a3aba5'})
.attr('data-original_pos', position);
}
jq('.tile-description').css({'font-size' : contentHeight / 20 + 'px'});
}
function slideTiles(e)
{
TILE_GLOBAL.values.cancelReset = true;
var chosenTile = jq(e.delegateTarget);
var prevTiles = chosenTile.prevAll('div');
var nextTiles = chosenTile.nextAll('div');
for(var i = 0; i < prevTiles.length; i++)
{
jq(prevTiles[i]).animate({left : jq(prevTiles[i]).attr('data-original_pos') - (TILE_GLOBAL.values.tileWidth/3*2.5) + 'px'}, {queue : false});
}
chosenTile.animate({left : chosenTile.attr('data-original_pos') + 'px'}, {queue : false});
for(var i = 0; i < nextTiles.length; i++)
{
jq(nextTiles[i]).animate({left : jq(nextTiles[i]).attr('data-original_pos') + 'px'}, {queue : false});
}
}
<div class="tile"><a href="isiplan-rv.html" target="_self"><img class="tile-image" src="images/template/tiles/rvtile.jpg" border="0" /></a>
<div class="tile-overlay"> </div>
<img class="tile-product-headline" src="images/template/tiles/rvheadline.png" border="0" />
<div class="tile-shadow"> </div>
<p class="tile-description"></p>
</div>