如何在时间变化时旋转图像?
How to rotate image when time changes?
我最近为 this 这样的网站制作了一个倒数计时器!它几乎是我在网上找到的 2 个脚本的组合。
倒计时到 2 月 1 日,并且非常稳定。但是 'clockpicture' 应该每秒旋转 6 度(请参阅页面源代码)。但事实证明,时钟图片将从页面加载的那一刻开始 counting/turning,因此如果您在两秒之间到达那里,与倒计时相比,图片将关闭半秒。
请问有什么办法可以'connect'把图片转成倒计时的变化吗?
非常感谢任何帮助!
编辑
根据与OP的讨论,终于找到了解决方案。问题是,浏览器如何处理旋转。
好的,所以,删除那个动画 gif,然后在那里做一些动画。在脚本顶部创建一个名为 var degrees = 0
的全局变量。您需要在每个刻度中增加 6 的度数。如果达到 360,则将其重置为 0。
由于某些原因,它不适用于 jsfiddle,但您可以查看它 on my site. Live demo
然后在你的 tick
函数中:
if (amount < 0) {
expired.push(idx);
}
// date is still good
else {
this.display(cnt, this.format(this.math(amount)));
if (degrees === 360) {
degrees = 0;
}
degrees += 6;
obj = document.getElementById('clock');
if (navigator.userAgent.match("Chrome")) {
obj.style.WebkitTransform = "rotate(" + degrees + "deg)";
} else if (navigator.userAgent.match("Firefox")) {
obj.style.MozTransform = "rotate(" + degrees + "deg)";
} else if (navigator.userAgent.match("MSIE")) {
obj.style.msTransform = "rotate(" + degrees + "deg)";
} else if (navigator.userAgent.match("Opera")) {
obj.style.OTransform = "rotate(" + degrees + "deg)";
} else {
obj.style.transform = "rotate(" + degrees + "deg)";
}
}
我最近为 this 这样的网站制作了一个倒数计时器!它几乎是我在网上找到的 2 个脚本的组合。
倒计时到 2 月 1 日,并且非常稳定。但是 'clockpicture' 应该每秒旋转 6 度(请参阅页面源代码)。但事实证明,时钟图片将从页面加载的那一刻开始 counting/turning,因此如果您在两秒之间到达那里,与倒计时相比,图片将关闭半秒。
请问有什么办法可以'connect'把图片转成倒计时的变化吗?
非常感谢任何帮助!
编辑
根据与OP的讨论,终于找到了解决方案。问题是,浏览器如何处理旋转。
好的,所以,删除那个动画 gif,然后在那里做一些动画。在脚本顶部创建一个名为 var degrees = 0
的全局变量。您需要在每个刻度中增加 6 的度数。如果达到 360,则将其重置为 0。
由于某些原因,它不适用于 jsfiddle,但您可以查看它 on my site. Live demo
然后在你的 tick
函数中:
if (amount < 0) {
expired.push(idx);
}
// date is still good
else {
this.display(cnt, this.format(this.math(amount)));
if (degrees === 360) {
degrees = 0;
}
degrees += 6;
obj = document.getElementById('clock');
if (navigator.userAgent.match("Chrome")) {
obj.style.WebkitTransform = "rotate(" + degrees + "deg)";
} else if (navigator.userAgent.match("Firefox")) {
obj.style.MozTransform = "rotate(" + degrees + "deg)";
} else if (navigator.userAgent.match("MSIE")) {
obj.style.msTransform = "rotate(" + degrees + "deg)";
} else if (navigator.userAgent.match("Opera")) {
obj.style.OTransform = "rotate(" + degrees + "deg)";
} else {
obj.style.transform = "rotate(" + degrees + "deg)";
}
}