利用CSS3D效果制作简易旋转木马效果

最近看一下css3d的一些特性,想着也实验学习一下,制作个小demo之类的。就练习了一下。开发一个粗糙的选择木马效果,如图

其实就是找到角度和位置,计算每根柱子的旋转角度摆放到3d空间的置顶位置即可。然后利用css的animate属性让3d舞台无线旋转,就有了一简易的旋转木马效果。感兴趣的可以看一下,可以把代码中的图片路径改为自己的图片地址就行了。直接可用。

代码如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .box{
            width:800px;
            height: 600px;
            margin:0px auto;
        }
        .box .stage{
            perspective:0px;
            perspective-origin: center center;
        }
        .box .stage .container{
            transform-style: preserve-3d;

        }
        .box ul,.box li{
            list-style: none;
            margin:0px;
            padding:0px;
            text-align: center;
            font-weight: bold;
        }
        .box ul{
            margin-left:200px;
            width:400px;
            height:400px;
        }
        .box li{
            position: absolute;
            margin-left:200px;
            width:10px;
            height:300px;
            background: blue;
            color:red;
            transform-origin: 5px top;
        }

        .box li> .horse{
            width:100px;
            height:100px;
            position: absolute;
            top:298px;
            left:-55px;
            border-radius: 50px;
            background-image: url("horse.jpg");
            background-size: contain;
        }

        .box ul{
            animation: run 20s linear infinite;
        }

        @-webkit-keyframes run {
            0%{
                transform: rotateY(0deg);
            }
            100%{
                transform: rotateY(360deg);
            }
        }

        @-webkit-keyframes horserun {
            0%{
                transform: translateY(0px);
            }
            100%{
                transform: translateY(50px);
            }
        }

    </style>
    <script src="js/jquery-1.11.2.js"></script>
    <script>

        $(function(){
            var len=$(".container>li").length;
            $(".container>li").each(function(e){
                var index=$(".container>li").index(this)+1;
                $(this).css({
                   "transform":"rotateY("+360/len * index+"deg) skew(60deg)"
                });

            });
        })

    </script>
</head>
<body>
<div class="box">
    <div class="stage">
        <ul class="container">
            <li class="horse1">
                <div class="horse"></div>
            </li>
            <li style="background: orange">
                <div class="horse"></div>
            </li>
            <li style="background: #ffff00">
                <div class="horse"></div>
            </li>
            <li style="background: green">
                <div class="horse"></div>
            </li>
            <li style="background: blue">
                <div class="horse"></div>
            </li>
            <li style="background:lightskyblue ">
                <div class="horse"></div>
            </li>
            <li style="background: purple">
                <div class="horse"></div>
            </li>
            <li style="background: black">
                <div class="horse"></div>
            </li>
        </ul>
    </div>
</div>
</body>
</html>

学习css3d的试验demo,觉得好玩就练习一下。。。

感谢阅读。。。

时间: 2024-10-13 14:55:07

利用CSS3D效果制作简易旋转木马效果的相关文章

利用锚点制作简单索引效果

[功能说明] 点击按钮时,页面跳转到对应区域 [HTML代码说明] [1][主体框架] <div class="box" id="box">    /*最外边再套一层div,是为了隐藏滚动条*/     <div class="listWrapOut">         /*将详细信息框外边再套一层div,是为了限制展示区的高度*/         <div class="listWrap">

利用锚点制作简单索引效果【CSSdemo】

[功能说明] 点击按钮时,页面跳转到对应区域 [HTML代码说明] [1][主体框架] <div class="box" id="box"> //将详细信息框外边再套一层div,是为了限制展示区的高度,并避免出现滚动条 <div class="listWrap"> //详细信息框 <ul class="list"> </ul> </div> //控制框 <nav

机器视觉支架制作(带效果测试)

图像处理系统中,镜头.光源的选配,对于最后能否产生稳定的识别效果至关重要.而搭载镜头.光源的是支架.机器视觉的支架一般都是根据项目的具体需要进行配置的,搜索淘宝能够得到一些商品. 这些支架形状不一,价格在数百元到千元之间:也有比较专业但是更贵的. 以前在IHalcon上面也看到过一个自己制作的机器视觉框架“.这种就地取材的思路很有教益. http://www.ihalcon.com/read-380.html 基于我的实际情况和手头有的东西,我设计实现了自己的机器视觉框架.因为我目前用的是高分辨

【JQuery】jQuery自制简易手风琴效果(附实现原理)

手风琴效果经常会用在网页左侧的导航栏,当导航内容比较多时使用手风琴的展示方式更有利于信息的传递和排版,下面就分享一个自己制作的简易手风琴效果,没有用图片,背景颜色也是随意设定的,在实际项目中大家可适当修改. 效果图: 实现原理: 1.当鼠标点击span标签(即一级导航)时,先判断子目录li是否已经展开(此处使用一个on类来做标记): 2.如果是,则收缩当前的li,移出on类标记,修改span右边的提示符为加号: 3.如果不是,则展开当前的li,增加on类标记,修改span右边的提示符为减号. 源

HTML5 CSS3:诱人的3D旋转木马效果相册实例

HTML5 CSS3:诱人的3D旋转木马效果相册实例 利用HTML5和CSS3实现的3D旋转木马效果相册 下载地址:http://www.devstore.cn/code/info/341.html 运行截图: 相关下载: HTML5 Canvas火焰闪烁动画 火焰跟随鼠标 HTML5仿Apple Watch时钟动画 版权声明:本文为博主原创文章,未经博主允许不得转载.

Cocos2d-x实现简易翻牌效果

翻牌效果网上找了好多,复杂点的有自己重写一个sprite类来实现,简单的就利用引擎自带的动作CCOrbitCamera来实现,但是存在一些问题,图片旋转之后变反了. 我在用的只是一个简单的翻牌效果,点击之后图片翻牌,翻到一半之后图片切换到另外一面,再继续剩下的旋转. 注:下面的代码只能翻牌一次,第二次就会乱了,当然,我需要的也只是翻牌一次而已. 简单的加载图片: pSprite = CCSprite::create("iv_card_1.png"); pSprite->setPo

WPF设置VistualBrush的Visual属性制作图片放大镜效果

原文:WPF设置VistualBrush的Visual属性制作图片放大镜效果 效果图片: 原理:设置VistualBrush的Visual属性,利用它的Viewbox属性进行缩放. XAML代码:// Window1.xaml<Window x:Class="MagnifyingGlass.Window1"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns

【前端】javascript+jQuery实现旋转木马效果轮播图slider

实现效果: 实现原理: 技术栈: javascript+jQuery+html+css 实现步骤: // 0. 获取元素 // 1. 鼠标放置到轮播图上,显示两侧的控制按钮,移开后隐藏 // 2. 为两侧控制按钮绑定事件(调用同一个方法,只有一个参数,true为正向旋转,false为反向旋转) 实现代码: <!DOCTYPE html> <html> <head> <title>旋转木马效果轮播图</title> <meta charset

CorelDRAW快速制作闪耀钻石项链效果

今天小编为大家分享使用CorelDRAW快速制作闪耀钻石项链效果,过程并不是很复杂,主要用到刻刀工具.智能填充和渐变色的应用,待到一个角完成之后会走一点点捷径,利用旋转复制的方法做出完整的钻石效果,最后在用加上一个半透明的倒影投影效果,整个画面的感觉就有了,现在跟小编一起来学习吧. 1. 首先使用贝塞尔工具创建一个三角对象(保持左边底角为45°),然后用刻刀工具的2点线模式沿直线切割对象,直到大三角形被分成无数个小的图形,如下图所示. 2. 使用智能填充工具选择不同的填充色,分别填充闭合的小图形