旋转的地球css3

css3果然博大精深:

1.代码里面还有用box-shadow制作椭圆形阴影的效果,厉害了!之前找了好久都没找到,今天给找到了

html:

<section class="stage">
    <figure class="ball">
    	<span class="shadow"></span>
    </figure>
  </section>

css:

.ball .shadow {
    position: absolute;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.1) 40%, rgba(0, 0, 0, 0) 50%);
    -webkit-transform: rotateX(90deg) translateZ(-150px);
    -moz-transform: rotateX(90deg) translateZ(-150px);
    -ms-transform: rotateX(90deg) translateZ(-150px);
    -o-transform: rotateX(90deg) translateZ(-150px);
    transform: rotateX(90deg) translateZ(-150px);
    z-index: -1;
}

效果:  

2.下面才是重点:

<!doctype html>  
<html>  
<head>  
<meta charset="utf-8">  
<title>旋转的地球</title>  
<style>  
	* {margin:0; padding:0; border:0;}  
	.ball {
	  display: inline-block;
	  width: 100%;
	  height: 100%;
	  margin: 0;
	  border-radius: 50%;
	  position: relative;
	  -webkit-transform-style: preserve-3d;
	  background: url('http://hop.ie/balls/images/world-map-one-color.png') repeat-x;
	  background-size: auto 100%;
	  -webkit-animation: move-map 30s infinite linear;
	  -moz-animation: move-map 30s infinite linear;
	  -o-animation: move-map 30s infinite linear;
	  -ms-animation: move-map 30s infinite linear;
	  animation: move-map 30s infinite linear;
	}

	.ball:before {
	  content: "";
	  position: absolute;
	  top: 0%;
	  left: 0%;
	  width: 100%;
	  height: 100%;
	  border-radius: 50%;
	  box-shadow: -40px 10px 70px 10px rgba(0,0,0,0.5) inset;
	  z-index: 2;
	}

	.ball:after {
	  content: "";
	  position: absolute;
	  border-radius: 50%;
	  width: 100%;
	  height: 100%;
	  top: 0;
	  left: 0;
	  -webkit-filter: blur(0);
	  opacity: 0.3;
	  background: radial-gradient(circle at 50% 80%, #81e8f6, #76deef 10%, #055194 66%, #062745 100%);
	}

	.ball .shadow {
	  position: absolute;
	  width: 100%;
	  height: 100%;
	  background: radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.1) 40%, rgba(0, 0, 0, 0) 50%);
	  -webkit-transform: rotateX(90deg) translateZ(-150px);
	  -moz-transform: rotateX(90deg) translateZ(-150px);
	  -ms-transform: rotateX(90deg) translateZ(-150px);
	  -o-transform: rotateX(90deg) translateZ(-150px);
	  transform: rotateX(90deg) translateZ(-150px);
	  z-index: -1;
	}
	body {
	  width: 300px;
	  margin: 20px auto;
	  background: linear-gradient(to bottom, rgba(100, 100, 100, 0.2) 0%, rgba(255, 255, 255, 0.5) 40%, #ffffff 100%);
	  background-repeat: no-repeat;
	}

	.stage {
	  width: 300px;
	  height: 300px;
	  display: inline-block;
	  margin: 20px;
	  -webkit-perspective: 1200px;
	  -moz-perspective: 1200px;
	  -ms-perspective: 1200px;
	  -o-perspective: 1200px;
	  perspective: 1200px;
	  -webkit-perspective-origin: 50% 50%;
	  -moz-perspective-origin: 50% 50%;
	  -ms-perspective-origin: 50% 50%;
	  -o-perspective-origin: 50% 50%;
	  perspective-origin: 50% 50%;
	}

	@-moz-keyframes move-map {
	  0% {
	    background-position: -849px 0; }

	  100% {
	    background-position: 0 0; } }

	@-webkit-keyframes move-map {
	  0% {
	    background-position: 0 0; }
	  100% {
	    background-position: -849px 0; }
	}


	@-o-keyframes move-map {
	  0% {
	    background-position: -849px 0; }

	  100% {
	    background-position: 0 0; } }

	@-ms-keyframes move-map {
	  0% {
	    background-position: -849px 0; }

	  100% {
	    background-position: 0 0; } }

	@keyframes move-map {
	  0% {
	    background-position: -849px 0; }

	  100% {
	    background-position: 0 0; } } 
</style>  
</head> 
<body>  
	<section class="stage">
    <figure class="ball">
    	<span class="shadow"></span>
    </figure>
  </section> 
</body>  
</html> 

可以复制上面的代码到框框中运行试试哦! 

 

还有更好玩的css3:http://www.w3cplus.com/css3/spheres.html

有时间一定要自己写写!^_^

posted @ 2017-05-08 22:07  front-gl  阅读(1692)  评论(0编辑  收藏  举报