我承认这只是答案的一半;它展示了如何使用 CSS/JQuery 动画滚动效果。
<html>
<head>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="transformjs.1.0.beta.2.min.js"></script>
<style>
body {font-size:128px;}
</style>
<script>
$(function(){ //OnInit
$('.anim').click(function() {
$(this).animate({ rotateX: '-='+(Math.PI/2), },500,"",
function(){ //OnComplete
var n=(parseInt($(this).html())+1)%10; //Turn 7 into 8, etc.
$(this).html(n.toString()); //Update number while it is hidden
$(this).animate({ rotateX: '+='+(Math.PI/2) },500); //Rotate it back
}
);
});
});
</script>
</head>
<body>
<div class="anim" style="float:left">1</div><div class="anim" style="float:left">2</div><div class="anim" style="float:left">3</div>
</body>
</html>
它需要 JQuery 1.5.1+ 和transformjs 库,可以在这里下载。单击每个数字以旋转它。在 Firefox 11 和 Chromium 17 中测试;transform.js 应该可以在旧版浏览器和 IE 中使用。
顺便说一句,说到跨浏览器挑战,我最初在<span>
s 上有三个数字。这适用于 Firefox,但 Chrome 不会为它们设置动画!<div>
因此,对s的更改为float:left
。
就像我说的,这只是解决方案的一半,因为它看起来还不太像翻牌。我认为这可以通过一些掩蔽来完成,并在数字之上创建一个临时 div(真正的 div 将有下一个数字;前一个数字将在那个临时 div 的顶部)。但在我没时间之前,我无法让它工作。
不过,我仍然认为值得发布;尝试在动画中的 rotateX 旁边添加一个 rotateY 和 rotateZ,以获得一些真正的 kewl 效果。