我希望使用Webkit CSS3来移动绝对定位的DIV,当按下按钮时,通过改变其左右CSS属性将其从屏幕上一个位置移动到另一个位置。然而,我看到的所有做法都使用静态CSS规则来应用此过渡效果。
由于我事先不知道新位置,所以我该如何动态应用这个CSS3过渡效果?
我希望使用Webkit CSS3来移动绝对定位的DIV,当按下按钮时,通过改变其左右CSS属性将其从屏幕上一个位置移动到另一个位置。然而,我看到的所有做法都使用静态CSS规则来应用此过渡效果。
由于我事先不知道新位置,所以我该如何动态应用这个CSS3过渡效果?
一旦你定义了过渡效果,无论如何更改元素的CSS值,它都会应用。因此,您可以使用JavaScript应用内联样式,元素就会动画显示。因此,使用以下CSS:
left: 100px;
top: 100px;
-webkit-transition: top 300ms ease-in 100ms, left 200ms ease-in 50ms;
-moz-transition: top 300ms ease-in 100ms, left 200ms ease-in 50ms;
-o-transition: top 300ms ease-in 100ms, left 200ms ease-in 50ms;
transition: top 300ms ease-in 100ms, left 200ms ease-in 50ms;
有这样一个函数:
function clickme() {
var el = document.getElementById('mydiv');
var left = 300;
var top = 200;
el.setAttribute("style","left: " + left + "px; top: " + top + "px;");
}
当您调用该函数时,您将看到动画效果。您可以从任何位置获取left和top的值。 我已经提供了一个完整的示例。
另一个选择是使用jQuery Transit将绝对定位的div向左或向右移动:
Javascript:
$("#btnMoveRight").click( function () {
$('#element').transition({ left: '+=50px' });
});
$("#btnMoveLeft").click( function () {
$('#element').transition({ left: '-=50px' });
});
它在移动设备上运行良好,并为您处理CSS3 /浏览器兼容性。