This time I will bring you H5+C3 to realize the carousel photo album. What are theprecautionsfor H5+C3 to realize the carousel photo album. The following is a practical case, let’s take a look.
Rendering: Hehe, I made some photos of my graduation from college into a merry-go-round, spinning around my liberal arts major, not forgetting the nurturing grace of my alma mater~
1. perspective
The perspective attribute includes two attributes: none and the length value with unit.
The default value of the perspective attribute is none, which means that the 3D object looks flat from infinite angles. Another value,
2. transform: translateZ(length)
Assuming that perspective: 300px is set, the smaller the value of translateZ is set, the smaller the size of the sub-element will be. When the value is set When it is close to 300px, it seems that the element is in front of you. When it exceeds 300px, it reaches the back of your field of view and the element is invisible.
The core of the above example:
1. First, all the image containers have position:absolute, superimpose them together, and then set rotateY to 40*i and i respectively. = 0, 1, 2...9; all pictures will intersect into a flower-like shape
2. Then set translateZ for the container of each picture, and all pictures will move outward from the corresponding angle. Expand it into a big circle, which is the effect in the picture above.
html:
CSS:
li { width: 128px; box-shadow: 0 1px 3px rgba(0, 0, 0, .5); position: absolute; bottom: 0; } li img { width: 128px; box-shadow: 0 1px 3px rgba(0, 0, 0, .5); vertical-align: middle; } li span { display: block; width: 128px; text-align: center; color: #333; font-size: 8px; } #stage { width: 900px; min-height: 100px; margin-left: auto; margin-right: auto; padding: 100px 50px; -webkit-perspective: 1200px; position: relative; } #container { background: url("img/xawl.jpg") no-repeat 0 0; margin-top: 200px; width: 128px; box-shadow: 0 1px 3px rgba(0, 0, 0, .5); height: 100px; margin-left: -64px; -webkit-transition: -webkit-transform 1s; transition: transform 1s; -webkit-transform-style: preserve-3d; position: absolute; left: 50%; } li:nth-child(0) { -webkit-transform: rotateY(0deg) translateZ(300px); } li:nth-child(1) { -webkit-transform: rotateY(40deg) translateZ(300px); } li:nth-child(2) { -webkit-transform: rotateY(80deg) translateZ(300px); } li:nth-child(3) { -webkit-transform: rotateY(120deg) translateZ(300px); } li:nth-child(4) { -webkit-transform: rotateY(160deg) translateZ(300px); } li:nth-child(5) { -webkit-transform: rotateY(200deg) translateZ(300px); } li:nth-child(6) { -webkit-transform: rotateY(240deg) translateZ(300px); } li:nth-child(7) { -webkit-transform: rotateY(280deg) translateZ(300px); } li:nth-child(8) { -webkit-transform: rotateY(320deg) translateZ(300px); } li:nth-child(9) { -webkit-transform: rotateY(360deg) translateZ(300px); }
p#stage is used as the stage, set perspective, set rotateY and translateZ for each li respectively; then we will set p#container -webkit-transform-style: preserve-3d; transform-style: flat | preserve-3d where the flat value is the default value, indicating that all child elements are rendered on a 2D plane. preserve-3d means that all child elements are rendered in 3D space. If the transform-style value is set to preserve-3d for an element, it means that the flattening operation is not performed and all its child elements are located in 3D space. Under normal circumstances, this attribute is used for the execution element of 3D animation effects, that is, it is to apply 3D animation effects, so its child elements should all be in 3D space.
One thing to note: In this example, the animation effect is actually due to mouse click, p#Container is changing rotateY inappropriately, all picture elements are in p#container, and have been displayed as a carousel Effect, what you need to do now is to rotate the Trojan, so you only need to change the rotateY 40 angle of p#container each time.
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!
Recommended reading:
Detailed explanation of H5’s storage method
How to use H5’s constraint verification API
postMessage implements cross-domain and cross-window messaging
The above is the detailed content of H5+C3 implements carousel photo album. For more information, please follow other related articles on the PHP Chinese website!