Javascript 让对象从屏幕的左侧飞到右侧

Javascript 让对象从屏幕的左侧飞到右侧,javascript,jquery,html,css,Javascript,Jquery,Html,Css,从开始,我们将看到一个长方体从开始位置飞行到结束位置的基本动画。这是已知的好代码。(我尝试将其作为stackoverflow代码段,但由于某些原因,它在这里不起作用。) HTML JavaScript document.getElementById("fly").className = "finish"; - 但与上面的小提琴不同,它不起作用。它不是从开始位置缓慢过渡到结束位置,而是从结束位置开始。这是因为它应该从“左”属性转换为“右”属性 HTML Javascript document.g

从开始,我们将看到一个长方体从开始位置飞行到结束位置的基本动画。这是已知的好代码。(我尝试将其作为stackoverflow代码段,但由于某些原因,它在这里不起作用。)

HTML

JavaScript

document.getElementById("fly").className = "finish";
-

但与上面的小提琴不同,它不起作用。它不是从开始位置缓慢过渡到结束位置,而是从结束位置开始。这是因为它应该从“左”属性转换为“右”属性

HTML

Javascript

document.getElementById("fly").className = "finish";
虽然我理解为什么这不起作用,但我需要一个盒子从屏幕左边缘飞到屏幕右侧。这个问题的大多数解决方案要么在极宽的屏幕设备上看起来很奇怪,要么在狭窄的移动设备上响应时间很慢。我想要一个对浏览器宽度做出响应的动画,在窄屏幕上移动得更慢,在宽屏幕上移动得更快

最优雅的解决方案是什么

理想情况下,我不想使用任何外部库,但如果必须的话,页面已经在使用jquery了,因此如果这有帮助的话,这将是理想的使用方法


我并不反对编写非常长的JavaScript函数,但越短越好。

正如您所知,动画不起作用,因为无法为两个不同的属性设置动画,在这种情况下,更改“左”和“右”值以希望为元素设置动画

我的建议是:

#fly.finish {
  left:calc(100% - 100px);
}

这是假设框的宽度始终为100px。希望有帮助

正如您所知,动画不起作用,因为无法为两个不同的属性设置动画,在本例中,更改“左”和“右”值以希望为元素设置动画

我的建议是:

#fly.finish {
  left:calc(100% - 100px);
}

这是假设框的宽度始终为100px。希望有帮助

将飞行元素“左”属性更改为(100%元素宽度),如下所示

#fly.finish{
  left: calc(100% - 100px);
}

将飞行元素“left”属性更改为(100%-元素宽度),如下所示

#fly.finish{
  left: calc(100% - 100px);
}

爱你的答案,但你被打败了。爱你的答案,但你被打败了。
#fly.finish {
  left:calc(100% - 100px);
}
#fly.finish{
  left: calc(100% - 100px);
}