Home > Web Front-end > HTML Tutorial > Pure CSS cool 3D rotating cube progress bar special effect_html/css_WEB-ITnose

Pure CSS cool 3D rotating cube progress bar special effect_html/css_WEB-ITnose

WBOY
Release: 2016-06-24 11:48:51
Original
1607 people have browsed it

In website production, improving user experience is a very important task. A creative design can not only attract the user's attention, but also greatly improve the user experience. In this article, we will boldly combine the 3D cube and progress bar we learned earlier to create a pure CSS3 3D rotating cube progress bar effect.

Online preview Source code download

In website production, improving user experience is a very important task. A creative design can not only attract the user's attention, but also greatly improve the user experience. In this article, we will boldly combine the 3D cube and progress bar we learned earlier to create a pure CSS3 3D rotating cube progress bar effect.

Let’s preview the effect first:

HTML structure

<div class="wrap">  <div class="cube">    <div class="front">      <div class="progress">Loading ...</div>    </div>    <div class="back">      <div class="progress">Loading ...</div>    </div>    <div class="top">      <div class="progress">Loading ...</div>    </div>    <div class="bottom">      <div class="progress">Loading ...</div>    </div>    <div class="left"></div>    <div class="right"></div>  </div></div>                  
Copy after login

 

This 3D The HTML structure of the cube progress bar is slightly different from the simple 3D cube we originally described. Because we also need to animate the progress bar, we wrap it with an extra layer of div. The divs with class progress are used to animate progress bars. They are located in the upper, lower and front and back sides. When we set a new progress bar value, we use these four faces to animate the progress bar.

CSS style:

.wrap {  perspective: 1000px;  perspective-origin: 50% 50%;   /*  Change this to adjust the 3d bar tilting */  transform: rotateZ(0.01turn) rotateY(0.01turn);}.progress{  height: 100%;  width: 0%;  padding: 0px;  transition: width 2s ease;     overflow: visible;  text-align: center;  color: #000;  font-family: verdana;  font-size: 20px;  white-space: nowrap;  line-height: 45px;     border-right: solid 2px #444;  background-size: 50px 50px;  /* Blue stripes */  background-image: linear-gradient(135deg,#3399ff 25%,#99ccff 25%,#99ccff 50%, #3399ff 50%, #3399ff 75%,#99ccff 75%,#99ccff 100%);  animation: bganim 1s linear 2s infinite;}@keyframes bganim {  to { background-position: 50px;}}.cube {  margin: auto;  position: relative;  height: 50px;  width: 500px;  transform-style: preserve-3d;  animation: rotate 20s infinite linear;} .cube > div {  position: absolute;  box-sizing: border-box;  height: 100%;  width: 100%;  border: solid 1px #eee;  background-size: 50px 50px;  /* Grey stripes */  background-image: linear-gradient(135deg,#ddd 25%,#eee 25%,#eee 50%, #ddd 50%, #ddd 75%,#eee 75%,#eee 100%);  animation: bganim 1s linear 2s infinite;}.cube > .left,.cube > .right{  height: 50px;  width: 50px;} .front {  transform: translateZ(25px);} .back {  transform: translateZ(-25px) rotateX(180deg);} .top {  transform: rotateX(-270deg) translateY(-25px);  transform-origin: top center;} .bottom {  transform: rotateX(270deg) translateY(25px);  transform-origin: bottom center;} .left {  transform: rotateY(270deg) translateX(-25px);  transform-origin: center left;}.right {  transform: rotateY(-270deg) translateX(25px) translateZ(450px);  transform-origin: top right;} /* Rotating the 3d rectangle */@keyframes rotate {  100%{    transform: rotateX(1turn);  }}                
Copy after login

 

Browser Compatibility

This progress bar effect can work in browsers other than IE All modern browsers except . Internet Explorer does not support the preserve-3d attribute, so all faces are rendered as flat surfaces and appear to be the same face. It is easiest to use the browser manufacturer's prefix in the above code. You should add the -webkit- prefix for browsers with Webkit core, and add corresponding prefixes for other browsers.

via: http://www.w2bc.com/Article/25385

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template