【学】CSS3的3D动画 ——3D旋转之骰子样式的钟表(2)上—— 妙味课堂

这个是3D旋转的进阶版,是一个类似与骰子的正方体。这个版本只有秒数的个位数,还没有写整个钟表,下面那个版本好好想想该怎么写

  1. 这个效果需要用到transform-style: preserve-3d
  2. 利用transform: rotateX, rotateY, rotateZ来定义物体转动轴,实现3D旋转
  3. 给一个正方体设置6个面,每个面都设置旋转基面,并且直接先朝各个方向转90度,有一个面要注意,就是和最前面的那个面的对面,不用转,但是要用transform: translateZ()来让这个面沿着Z轴移动到后面,同时要让这个面上的数字或者文字还要translateX(180deg),这样就能让背面的那个字转过来是正着的,否则它在背面是正的时候再转过来就变成倒着的了
  4. 为了让这个骰子有点看上去是有点往右倾斜,就想到给它rotateY(10deg),但是直接加载box上会有问题,为了让它转动,已经加过一次transform:rotateX,再加一个transform会把这个覆盖,所以想到了,在这个box外面再加一个outerbox,让outerbox往右倾斜就可以。
  5. 在转动一次之后,要让即将转过来的那个面的数字变成下一秒的个位数
  6. 复习一下如何取到一个2位数的个位数字和十位数字。个位=x- parseInt(x/10)*10;十位数字=parseInt(x/10);

<style>

#wrap{

    margin: 70px auto;

    width: 100px;

    height: 100px;

    padding: 100px; 

    perspective: 900px; //注意要把perspective写最外面

}

#outerbox{

    width: 100px;

    height: 100px; 

    transform-origin: center center;

    transform-style: preserve-3d; //为了让骰子总是向左斜10度,要在外面再加一层,并让它具有3d样式

    transform: rotateY(10deg); 

}

#box{

    width: 100px;

    height: 100px;

    transform-style: preserve-3d;

    transform-origin: 50% 50% -49px;

    transition: 0.3s cubic-bezier(.18,.95,.65,1.46);

    position: relative;

}

#box div{

    width: 98px;

    height: 98px;

    border: 1px solid black;

    font: 50px/100px arial;

    text-align: center;

    position: absolute;

    opacity: 0.4;

}

#box div:nth-of-type(2){

    top: -100px;

    transform-origin: bottom;

    transform: rotateX(90deg);

}

#box div:nth-of-type(1){

}

#box div:nth-of-type(4){

    top: 100px;

    transform-origin: top;

    transform: rotateX(-90deg);

}

#box div:nth-of-type(3){

    transform: translateZ(-100px) rotateX(180deg);

}

#box div:nth-of-type(5){

    left: 100px;

    transform-origin: left;

    transform: rotateY(90deg); 

}

#box div:nth-of-type(6){

    left: -100px;

    transform-origin: right;

    transform: rotateY(-90deg);

}

</style>

<script>

window.onload = function(){

 var oBox = document.getElementById(‘box‘);

 var angle = 0;

 var Index = 0;

 var aDiv = oBox.getElementsByTagName(‘div‘);

 for (var i=0; i<aDiv.length; i++) {

        aDiv[i].index = i;

 }

 

 function rote(){

 var oDate = new Date();

 var iSec = oDate.getSeconds();

 var iSecS = iSec - parseInt(iSec/10)*10;

 var iSecD = parseInt(iSec/10);

        oBox.style.transform = ‘rotateX(‘+angle+‘deg)‘;

        angle -= 90;

 if(Index===4){

 Index=0;

 }

        document.title=iSecS;

        aDiv[Index].innerHTML = iSecS;

 Index++;

 }

    rote();

    setInterval(rote,1000);

};

</script>

</head>

<body>

 <div id="wrap">

 <div id="outerbox">

 <div id="box">

 <div></div>

 <div></div>

 <div></div>

 <div></div>

 <div></div>

 <div></div>

 </div>

 </div>

 </div> 

</body>
时间: 2024-10-05 18:56:51

【学】CSS3的3D动画 ——3D旋转之骰子样式的钟表(2)上—— 妙味课堂的相关文章

【原】CSS3的3D动画 ——3D旋转之骰子样式的钟表(2)下 - 模仿智能社网页下的.md

之前看到智能社主页的那个骰子样式的钟表,最近研究了一下,虽然没有仔细看他是怎么做的,但是学了css3的动画之后想自己尝试着写一下,用到的原理可能和智能社网站的不太一样,我自己主要用到了css3和js. 程序写到一半,发现只有chrome和ff支持,而用ie11是没有效果的,然后用ie11去打开智能社网页,效果也是没有,调查了一下,应该是transform-style:preserve-3d这个样式在ie11下还不支持,使得对象无法以3d的样式呈现,至于兼容方式,自己还没有花时间研究,所以这个效果

【学+原】CSS3的2D动画 ——仿NOMOS手表—— 妙味课堂

看CSS3妙味课堂中有一课是介绍如何做钟表界面,然后三根针都能随着时间转动,然后自己在那个简易的版本上做了一些进一部改进. 最关键的知识点应该是transform-origin这个样式,要选对旋转的中心点.分针秒针时针的旋转中心点应该是针的底部中间位置 这个实例还是让我第一次见到把<style>设置了id,然后写进js里去操作的,因为表面的各种小时,秒的刻度的制作,需要用循环来写,直接写css样式里是不现实的. 另外就是要把setInterval和transform:rotate结合起来使用,

【学】CSS3的3D动画 ——3D旋转(1)—— 妙味课堂

最近学了妙味的css3的动画,2D,3D的都有,先写一个最简单的3d翻转效果,鼠标移入div,正反面翻转效果. 注意点有: 要给正反面外面加个父级: transform-style: preserve-3d;是加在正反面的父级,使动画具有3d的效果:但是ie11并不支持preserve-3d perspective也要加在父级上,使动画具有透视效果: 要给父级也加上宽高,否则动画没有效果 <style> #box{ margin: 70px auto; width: 300px; height

【学】CSS3的animation基础——妙味课堂

终于结束了最后css3的一节课,关于animation的使用,其实之前已经用过一次.大致要了解的就是,关于如何让动画停在最后一帧的方法.视频里有提到过css3出了个新的样式可以实现,但是老师没有记住,用了个变通的方法,就是单独设置一个 .stop {left:0 !important;top:0!important;} 然后在js里将这个class赋值给元素即可. 后来我又网上找了一下,发现其实是一个叫animation-fill-mode的样式,将它的值设置为forwards,就可以实现效果.

妙味课堂实战功能开发视频教程 3D翻转焦点图/瀑布流/拖拽购物车/模块化开发等实战教程

<HTML5梦工厂 - 码农俱乐部视频>├<第八期码农俱乐部-技术之夜-3D翻转焦点图>│  ├1-码农俱乐部技术之夜-3D翻转焦点图_.mkv│  ├2-码农俱乐部技术之夜-3D翻转焦点图_.mkv│  ├3-码农俱乐部技术之夜-3D翻转焦点图_.mkv│  └lesson8.zip├<第二期码农俱乐部-技术之夜-瀑布流效果>│  ├1-码农俱乐部技术之夜-瀑布流效果1(原理介绍)_.mkv│  ├2-码农俱乐部技术之夜-瀑布流效果2(布局和数据的获取)_.mkv│ 

css3 --- 翻页动画 --- javascript --- 3d --- 准备

用css3和javascript做一个翻页动画<知识准备部分> 如有更多疑问请参照:http://www.imooc.com/learn/77 这是用css3的-webkit-transition属性做的渐变颜色动画,下面是三张截图: 怎么样?好看吧,下面是它的代码: -webkit-transition: background-color 2s;-webkit-是用chrome或safari打开的一个前缀,transition时表示渐变的属性,它的值是 渐变属性 和 渐变时间,上面注释的部分

css3实现3D动画轮播图

这个感觉有点水,只是一个很简单的css3的3D动画,不过对于不会的人来说,应该还是蛮能唬人的吧,哈. 原理很简单,老规矩,都在注释里面,可以直接复制走代码,粘贴 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { padding: 0; marg

3D Grid Effect – 使用 CSS3 制作网格动画效果

今天我们想与大家分享一个小的动画概念.这个梦幻般的效果是在马库斯·埃克特的原型应用程序里发现的??.实现的基本思路是对网格项目进行 3D 旋转,扩展成全屏,并呈现内容.我们试图模仿应用程序的行为,因此创建了两个演示,分别演示垂直和水平旋转网格项. 温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. 您可能感兴趣的相关文章 创意无限!一组网页边栏过渡动画[附源码下载] 真是好东西!13种非常动感的页面加载动画效果 你见过吗?9款超炫的

css3 transition属性实现3d动画效果

transition属性是一个很强大的3d动画属性,我动手试了一下,很多在网上很火的网页动画都可以用这个属性实现,只能说这个属性是在是太强大啦,本人在学习次属性之后才知道自己对css3的认识还是偏少,现在我给大家介绍并实际实现下该属性. transition字面意思是变迁.变换.过度的意思,所以transition属性也离不开这个大致意思,其中该属性中的重要属性是: transition-property:指定过度的元素; 如:transition-property:background,就是指