我创建了一个包含 4 个不同页面的简单网页。在主页上,每个页面都有一个导航链接,例如 -
第1页 第2页 第3页 第4页
所以现在我想实现一些东西,比如如果我点击任何链接,它应该打开那个页面,就像我们翻阅带有一些过渡效果的书页一样。那么如何通过使用 html5 或 css3 等来实现呢?
正如已经说过的那样,您的问题缺乏一些以前的调查来获得一些具体的答案,但这里有一些可能对您有所帮助的见解:
webkit-
前缀)div
不同 z-index的叠加和 CSS3 2D 平移/旋转变换(具有适应的原点)的使用在这里完成了大部分技巧。添加了“box-shadow”和“gradient”来模拟深度。Hakim El Hattab 的方法,由 nlob 提出,是一种使用画布代替绘制翻转的变体。所有这些解决方案都使用 CSStransition
来创建动画,通过补间 2D 变换的属性或着色器的输入属性。
动画可以由基本的 CSS 状态(:hover
例如)或通过 Javascript,通过处理选定的事件(单击、拖动、...)来触发。例如,您可以使用此处理程序来设置 DOM 元素的类以触发转换:
.page {
transform: translate(0px, 0px) rotate(0deg);
transition: transform 1s;
}
.curled-page {
transform: translate(42px, 42px) rotate(42deg);
}
- JS:
document.getElementById('page1-corner').onclick = function() {
var page1 = document.getElementById('page1');
page1.className += ' curled-page'; // Supposing page1 already has "page" as class.
};
如果您在所有给出的答案中挖掘一点,您应该能够找到自己的方式。
祝你好运!
您需要了解 css 和基本 javascript 事件中的以下属性。
保留 3d、变换原点、变换旋转、z-index。
而且您不能使用超链接进行导航,因为重新加载页面会与您对翻转效果的要求相冲突。没有人会为您的任务提供整个脚本。您必须自己做。