旋转木马的小效果!

游乐场里的旋转木马是一个非常好玩的项目,尤其是很多女生都非常向往。那么,生活里的旋转木马尚能如此吸引人,何况计算机中的编码呢?在我看来,计算机中的旋转木马更为可爱,虽然我不能身临其境,但它比我身临其境却要更加满足~

先来一个旋转动物大聚会:

由于上传的动图比较大,就不上传了。

这个是对这个旋转木马截的图,效果不太明显,但是隐约可以看到后面存在的小方格,小版块,其实就是其他的照片。

下面献上我的代码,为了以后更加熟练掌握和熟练运用css,在这里做上一个笔记。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>图片旋转</title>
        <style type="text/css">
            div{
                width: 300px;
                height: 240px;
                margin:200px auto;
                animation: rolldiv 10s linear infinite;
                transform-style: preserve-3d;
            }

            @keyframes rolldiv{
                from{
                    transform: rotateY(0deg);
                }
                to{
                    transform: rotateY(360deg);
                }
            }

            img{
                width: 300px;
                height: 240px;
                opacity: 0.9;
                position: absolute;
            }
            img:nth-child(1){
                transform: rotateY(36deg) translateZ(500px);
            }
            img:nth-child(2){
                transform: rotateY(72deg) translateZ(500px);
            }
            img:nth-child(3){
                transform: rotateY(108deg) translateZ(500px);
            }
            img:nth-child(4){
                transform: rotateY(144deg) translateZ(500px);
            }
            img:nth-child(5){
                transform: rotateY(180deg) translateZ(500px);
            }
            img:nth-child(6){
                transform: rotateY(216deg) translateZ(500px);
            }
            img:nth-child(7){
                transform: rotateY(252deg) translateZ(500px);
            }
            img:nth-child(8){
                transform: rotateY(288deg) translateZ(500px);
            }
            img:nth-child(9){
                transform: rotateY(324deg) translateZ(500px);
            }
            img:nth-child(10){
                transform: rotateY(360deg) translateZ(500px);
            }

            body{
                transform-style: preserve-3d;
                -moz-perspective: 2000px;
            }

        </style>
    </head>
    <body>
        <div>
            <img src="img/pic1.jpg" />
            <img src="img/pic2.jpg" />
            <img src="img/pic3.jpg" />
            <img src="img/pic4.jpg" />
            <img src="img/pic5.jpg" />
            <img src="img/pic6.jpg" />
            <img src="img/pic7.jpg" />
            <img src="img/pic8.jpg" />
            <img src="img/pic9.jpg" />
            <img src="img/pic10.jpg" />
        </div>
    </body>
</html>

这个是在 Hbuilder 里面写的代码,效果不错。

逐一分析css的属性:

margin:与上面的边框的相隔的像素值,与左边相离像素值。

from {} to {}  这个表示从0°旋转到360°。

@keyframes rolldiv  :这个是对动画进行定义,其中rolldiv是这个动画的名称,方便在后文中进行引用。

在这里面的animation里面便进行了引用,10s表示它整个动画维持的时间总和,linear infinite 这个则是表示它运行无限次,当然你也可以规定次数,比如3,就表示三次。

下面这个transform-style则表示它这个是3d的效果。

opacity表示它的透明度,最上方的照片我定义的为0.9。这个属性值的范围是0~1,从全透明变成不透明。

position 表示位置。

在下面来的就是这个我第一次见到的属性了!

因为我总共10张图片,然后需要旋转360°,于是每张图片旋转为36°,后面的translateZ(500px),表示距离旋转中心Z轴500个像素。

而前面的nth-child(1~10)表示每一张子图片。

style这个表示它是3d的效果。,后面这个perspective我的测试效果是,值越大,整体就越矮。

综述,这里面的图片也可以转换为video,加上js代码便可以实现鼠标置上时,播放视频等效果。过程也是比较简单的。

接下来,关于旋转,这里列举时钟的例子:

首先,不得不说,颜色搭配得不太美观,但是没关系,你可以自己尝试搭配你喜欢的颜色。

代码展示:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>时钟</title>
        <style type="text/css">
            .yuan{
                width: 500px;
                height: 500px;
                background-color: #ddd;
                border-radius: 50%;
                border: 6px solid #000000;
                position: relative;
            }
            .miaozhen{
                width: 10px;
                height: 170px;
                background-color: #000000;
                position: absolute;
                left: 245px;
                top: 114px;
                animation: animationmiaozhen 60s;
                animation-iteration-count: infinite;
                transform-origin:50% 80%;
            }
            .fenzhen{
                width: 14px;
                height: 140px;
                background-color: #A2A2A2;
                position: absolute;
                left: 243px;
                top: 144px;
                animation: animationfenzhen 3600s;
                animation-iteration-count: infinite;
                transform-origin:50% 76%;
            }
            .shizhen{
                width: 18px;
                height: 110px;
                background-color: #16160D;
                position: absolute;
                left: 241px;
                top: 174px;
                animation: animationshizhen 43200s;
                animation-iteration-count: infinite;
                transform-origin:50% 69%;
            }

            @keyframes animationmiaozhen{
                from{
                    transform: rotate(0deg);
                }

                to{
                    transform: rotate(360deg);
                }
            }
            @keyframes animationfenzhen{
                from{
                    transform: rotate(0deg);
                }

                to{
                    transform: rotate(360deg);
                }
            }
            @keyframes animationshizhen{
                from{
                    transform: rotate(0deg);
                }

                to{
                    transform: rotate(360deg);
                }
            }
        </style>
    </head>
    <body>
        <div class="yuan">
            <div class="shizhen">

            </div>
            <div class="fenzhen">

            </div>
            <div class="miaozhen">

            </div>
        </div>

    </body>
</html>

代码看起来也比较容易写,难度也不算很大。

left——>左间距,top——>上间距。

animation:动画定义后的实现及完成时间。

animation-iteration-count:次数,这里是无限次。

transform-origin:这里表示旋转中心点分别在width和height的所占比例,由于,我在追求美观,希望针尾长度一致,所以这里的比例便不同。需要编程人员自己计算,so easy!

然后结合上面提到的旋转木马,其实这个就很容易理解了。

心向旋转巧得木马    峰回路转偶得时钟    希望总有一款可以让我们更加了解css!

时间: 2024-12-11 19:35:40

旋转木马的小效果!的相关文章

一个随机上翻的小效果

html <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="Content-Type" content="text/html; charset=uft-8"> <meta name="keywords

Android笔记 之 旋转木马的音乐效果

一.前言-- 大家一定在百度音乐上在线听过歌,有没有注意到那个旋转唱片-- 就上面那个,当音乐在播放的时候,那个光碟轮子在转,就想旋转木马一般.感觉好好玩啊. 碰巧想起前阵子做音乐播放器,哎,那这个也可以做在手机的音乐播放器上,这样就代替了进度条了. 一想到,就兴奋,于是,首先画圆形,然后放置背景图片,然后使用动画旋转.当音乐播放时,同时 开始播放圆形图片的动画,当音乐暂停时,暂停旋转:当音乐停止播放时,就停止动画,图片回到原点. 二.效果-- 三.源码-- (1)MainActivity <s

js-------》(小效果)实现倒计时及时间对象

js实现倒计时及时间对象 JS实现倒计时效果代码如下: 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>无标题文档</title>h 6 <style> 7 #box { 8 width: 100%; 9 height: 400px; 10 background: black; 11 color: #fff; 1

CSS3实现几个常用的网页小效果

主题 由于最近比较忙,自己也没有很充裕的时间可以去做比较丰富的分享.今晚我挤出时间来制作这几个很常用的CSS3网页小效果.最近写JS的时间比例比较多,不过我还是比较钟情于CSS3.所以我还是坚持分享一些实用的CSS3小例子.这次由于时间有限,就做了几个相对比较简单的例子.看一下吧! 正文 第一种效果: 由于录制gif图片会掉帧,所以看起来不流畅,很卡,但其实实际效果还是不错的,有弹性一些. html代码: <span class="shake">弹</span>

工作需求——JQ小效果分享下

一.文字索引效果展示: html布局代码 <ul class="n_areaList"> <li> <h5>当前选择区域</h5> <p>北京市</p> </li> <li> <h5>定位区域</h5> <p>北京市</p> </li> <li> <h5>A</h5> <a href=&qu

一个小效果引出的兼容性探讨

最近在做个小效果,没想到引出了几个以前的没认真去自己探讨的兼容问题,最后虽然这个效果还是不是很满意,但在这里想分享一下过程 首先想做的效果是 每次点击页面时,出现一个小波纹,然后自动消失 可以先看一下demo 到最后实现后,发现这个效果实用性不是很高,但是过程引出了一些值得积累的问题 引出知识点: transition的兼容支持 事件兼容 transitionend的兼容 如果我out了,请点击关闭 首先看一下 transition 的兼容性 1 <span style="font-siz

实现图片旋转木马3D浏览效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8&

jquery 旋转木马3D文字效果

原文:jquery 旋转木马3D文字效果 源代码下载地址:http://www.zuidaima.com/share/1560342029011968.htm

js之图片变大变小效果

1.当鼠标移到图片上,图片变大:当鼠标移出图片,图片变小,效果如图: 2.原理不难,就是鼠标over时,设置一个定时器,让图片逐渐变大,鼠标out时同理,看下最初的简略代码你就会明白: <!DOCTYPE html> <html> <head> <style type="text/css"> div {     width: 200px;           /* 宽度 */     height: 100px;          /*