- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试仅在主要内容 div 而不是整个页面上进行以“书籍封面”开始的页面转换。您可以看到封面几秒钟,足以看清它。然后封面应该像打开任何精装书封面一样“打开”,抬起前面的一侧然后翻出视野,就像放大内页一样,封面不在框架内。
我看了很多教程和生成器,似乎有某种翻转的“ chalice ”,其中元素在中心的 y 轴上水平翻转,就像翻转卡片一样。我找不到任何东西可以帮助我弄清楚如何从一侧翻到另一侧,就像精装书的封面一样。
我无法提供代码片段,因为我真的不知道从哪里开始。我可以从无数教程页面之一加载无数示例代码之一,但它只是随机的、毫无意义的动画翻转代码,我对如何自定义以执行我需要的操作的理解为零,否则我已经完成了它已经存在,但不存在。
谁能指出我正确的方向?即使您只是将我指向一些通用动画翻转代码的教程页面,并简单地告诉我要更改哪些属性以使其像精装书一样翻开,那也是完美的。
我想我可以弄清楚如何在使用延迟加载暂停后触发它,但如果您有更好的解决方案,我们也欢迎。
最佳答案
我将引导您完成它:
1) 首先,我们需要一个 HTML 结构,因此我们创建“页面”(实际上是页面边):
<div class="page odd" id="cover">This is the cover</div>
<div class="page even" id="cover_back">Inside of the cover</div>
<div class="page odd" id="content">This is where the content goes...</div>
2) 其次,我们必须定位这些页面。奇数页应该在中间,偶数页应该垂直居中但在奇数页的左边。这是通过以下 CSS 完成的:
.page {
display: inline-block;
z-index: 1; /* the content page should go behind the cover pages */
position: fixed;
/* Size & Position */
top: 50%;
left: 50%;
width: 360px;
margin-left: -180px; /* half of width */
height: 500px;
margin-top: -250px; /* half of height */
/* Add some styling, so the pages are opaque */
background-color: #eee;
/* Hide backface of each page/side, so we don't see it when turned */
backface-visibility: hidden;
-moz-backface-visibility: hidden;
-webkit-backface-visibility: hidden;
/* Set up animation */
transition: transform 1.0s ease;
-o-transition: transform 1.0s ease;
-moz-transition: transform 1.0s ease;
-webkit-transition: transform 1.0s ease;
/* Hide content that overflows the page */
overflow: hidden;
}
.page.even {
margin-left: -540px; /* 1,5 x width to position it left of odd pages */
}
3) 未翻转时,奇数面面向观看者,偶数面则不(就像一本真书)。这可以通过使用 transform: rotateY()
来完成。奇数页在左侧翻动,偶数页在右侧翻动。所以我们将这些 transform-origin
添加到 .page.odd
和 .page.even
类中:
.page.odd {
transform-origin: 0% 0%;
-o-transform-origin: 0% 0%;
-ms-transform-origin: 0% 0%;
-moz-transform-origin: 0% 0%;
-webkit-transform-origin: 0% 0%;
}
.page.even {
transform-origin: 100% 0%;
-o-transform-origin: 100% 0%;
-ms-transform-origin: 100% 0%;
-moz-transform-origin: 100% 0%;
-webkit-transform-origin: 100% 0%;
transform: rotateY(180deg); /* even pages start rotated (closed book) */
-o-transform: rotateY(180deg);
-ms-transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
-webkit-transform: rotateY(180deg);
}
4) 当您“翻页”时,必须旋转两个面(1 个奇数,1 个偶数),因此奇数面不再面向观众,而偶数面将会。您可以通过将 .turn
类添加到这些边来完成此操作。在这些 .turn
类中,您可以为奇数边和偶数边设置适当的 transform: rotateY()
:
.page.odd.turn {
transform: rotateY(-180deg);
-o-transform: rotateY(-180deg);
-ms-transform: rotateY(-180deg);
-moz-transform: rotateY(-180deg);
-webkit-transform: rotateY(-180deg);
}
.page.even.turn {
transform: rotateY(0deg);
-o-transform: rotateY(0deg);
-ms-transform: rotateY(0deg);
-moz-transform: rotateY(0deg);
-webkit-transform: rotateY(0deg);
}
5) 为了让一切看起来漂亮流畅,我们在 body
的 CSS 中添加 perspective: 1200px;
并确保 html
和 body
元素是 width: 100%
和 height: 100%
。
6) 最后一点:我们希望封面页位于内容页之前,因此我们设置这些页面的 z-index
es:
#cover {
z-index: 3;
}
#cover_back {
z-index: 2;
}
首先,我在 CSS 中做了一个带有注释的示例来帮助您解决问题:https://jsfiddle.net/PhilQ/b52dw42d/12/
编辑:在我的示例中翻页是通过单击按钮完成的,但您可能希望更改 JavaScript 以使用 setTimeout()
来触发 .toggleClass( 'turn')
X 毫秒后。
编辑:我还做了一个使用 CSS animation
进行转弯的示例:https://jsfiddle.net/PhilQ/b52dw42d/11/
关于css - 纯 CSS 书籍封面在延迟后页面加载时翻转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35549640/
可以抛出异常的函数可以有[pure]属性吗? 最佳答案 根据 https://msdn.microsoft.com/en-us/library/system.diagnostics.contracts
我使用的是纯 css 推送导航。它工作得很好,但是我不知道如何在单击导航链接时隐藏菜单。您必须手动单击菜单图标才能使菜单返回隐藏状态。但是,当单击链接并且站点跳转到某个部分时,我希望菜单自动滑入隐藏状
我正在尝试让纯 CSS 下拉菜单正常工作。它在很大程度上确实有效,除了其他内容似乎显示出来但我不知道为什么。 http://jsfiddle.net/uQveP/4/ 有人可以告诉我我做错了什么吗?
这个问题在这里已经有了答案: What is a "callback" in C and how are they implemented? (9 个回答) 关闭 8 年前。 我正在以这种方式实现回
我想在不使用 Javascript 或任何其他语言的情况下,使用 HTML 和 CSS 创建一个 Page Back Button。我想用纯 HTML 和 CSS 来完成。 我进行了搜索,但每次代码中
我对序言很陌生。据我所知,Pure Prolog 仅限于 Horn 子句。 这是一个非常简单的序言程序 - % student( Snr , FirstName , LastName ,
我想在加载数据时对容器使用以下加载指示器。 问题是, slider 具有固定的宽度和高度(300 像素和 300 像素),但我希望它能够动态适应容器。当我尝试添加宽度时:140px;和高度:140px
当内容超过可用宽度时,我需要启用滚动阴影。这是我试图用纯 css(没有 JS)来实现的。我遇到了很多文章,可以使用 css 多背景和背景附件来实现。如果内容是文本类型,则可以使用下面的 jsfilld
我正在编写一个上古卷轴在线插件,它由一个名为 Havok Script 的轻微修改的 Lua 5.1 引擎支持。 .这个Lua环境不允许访问os , io , package , debug模块或任何
我自己尝试过将 Arduino 库编译成他们自己的独立库并链接到 Eclipse 中的一个项目,但在此过程中遇到了一些问题。 是否有关于如何启动和运行的体面指南?我一直很难在网上找到一个真正有效的..
我在这里遇到了一些麻烦。我正在尝试使用本地存储创建一个待办事项列表,但我唯一要做的就是将列表项添加到本地存储并删除 所有项目 从本地存储中删除,但我无法从列表中删除单个 SELECTED 项目。有人可
我的问题很简单。考虑以下 CodePen .是否有可能仅使用 css 就可以获得相同的结果?换句话说,如果不使用 javascrip 如何做到这一点?非常感谢! Nachos are
我正在使用没有 jquery 的 angularjs,并尝试创建滚动事件监听器。 尝试过这种方法: $rootScope.$watch(function() { return $windo
我正在尝试使用纯 webgl 创建虚线。我知道这已经有一个问题,也许我很笨,但我不知道如何让它发挥作用。我理解这个概念,但我不知道如何在着色器中获取沿路径的距离。以前的答案有以下行: varying
我正在尝试用纯 JavaScript 制作工具提示,显示在 hover .就像 Stack Overflow 中将鼠标悬停在配置文件名称上的一个 div显示。 我尝试使用 onmouseover ,
我想要通过 AJAX 将监听器添加到新元素的想法: 例如,现在我有 hello world 我为每个 添加了一个监听器,但是当我通过 AJAX 加载新元素时,它没有监听器;我不完全确定问题是什么。
如果我错误地提出了这个问题,或者之前已经有人问过并回答过这个问题,我提前表示歉意。我的搜索发现了类似的基于 JQuery 和/或静态日期的问答,我正在寻找具有动态日期的纯 JavaScript 解决方
在 Real World Haskell, Chapter 28, Software transactional memory ,开发了一个并发的网络链接检查器。它获取网页中的所有链接,并使用 HEA
我正在尝试取消 jQuery-fy 一个聪明的 piece of code ,但有点太聪明了。 目标是simple 。将图像从桌面拖动到浏览器。 在这次 unjQueryfication 过程中,我发
如何重新创建 jQuery end() $('#id') .find('.class') .css('font',f) .end() .find('.seven') .css(b,'red') 我有什
我是一名优秀的程序员,十分优秀!