gpt4 book ai didi

Javascript 动画比例 Sprite

转载 作者:行者123 更新时间:2023-11-30 05:55:19 24 4
gpt4 key购买 nike

enter image description here

这是我用来通过 CSS 为对象设置动画的 Sprite 。每帧的宽度为 224px,因此 div 的 background-position 属性每帧递增 -224px,然后循环继续。问题是我的 div 的宽度不固定。我使用 div 的百分比宽度来保持分辨率独立。所以我希望我的 224px 宽框架在 div 的宽度上缩放,并且每帧向左移动相同的量。希望你清楚。这是用于为 div 设置动画的 JS 函数。

function moveTail() {
if ( typeof moveTail.counter == 'undefined' ) {
moveTail.counter = 0;
moveTail.object = $('#genietail');
}

if( moveTail.counter == 42 )
moveTail.counter = -1;
++moveTail.counter;
moveTail.object.css('background-position', moveTail.counter*-224 + "px 0px" );
}

最佳答案

有两种缩放 Sprite 图像的方法。

第一个是玩background-size CSS 属性。例如,如果您的 sprite 大小为 100px x 100px,则默认为 background-size将采用值 100px 100px,但如果将其设置为 200px 200px,它将显示的图像大小加倍。

在你的情况下它看起来像这样:

var spriteSize = { height: 224, width : 224 * 20 };
var imageSize = { height: 224, width : 224 };
var backgroundWidth = Math.floor((moveTail.object.width() / imageSize.width) * spriteSize.width);
var backgroundHeight = moveTail.object.height();

moveTail.object.css("background-size", backgroundWidth + "px " + backgroundHeight + "px");
moveTail.object.css('background-position', moveTail.counter * -moveTail.object.width() + "px 0px" );

第二个是使用 CSS 3 属性 transform使用 scaleXscaleY。如果您希望 div 的显示大小加倍,您可以在 CSS transform: scaleX(2) scaleY(2) 中执行。

关于Javascript 动画比例 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12228678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com