`

如何用css3实现风车效果

阅读更多

前面讲过css3可以替代很多js实现的效果,其实很多时候纯css3甚至可以替代图片,直接用css3就可以画出一些简单的图片。虽然css3画出来的图片效果可能不如直接用图片的好,实现起来也比较复杂,最麻烦的是兼容性问题,不如图片来得直接实用。但是换一种思路去思考问题的解决办法往往能激发我们的灵感,也有助于我们学习css3。

下面给出的demo里会有用图片和纯css3实现的风车效果的对比。

先看看静态的效果图:

纯css3实现的风车动画效果图

纯css3实现的风车动画效果图

下面简单介绍一下我是如何用纯css3实现一个风车的动画效果的,

1.画出风车的柱子

我们可以看到风车的柱子是一个等边的梯形,通过width,height属性配合border我们可以实现很多几何图形,如三角形,梯形等等,大家可以参照下面梯形的实现方法自己试试其他图形的实现。

  1. displayblock;   
  2. height: 0;   
  3. width4px;   
  4. border-width: 0 4px 80px 4px;   
  5. border-stylenone solid solid;   
  6. border-colortransparent transparent white;  

效果图

风车车柱实现效果

风车车柱实现效果

2.画风车的轴

这一步比较简单,用border-radius圆角属性可以轻松实现。

  1. width:4px;   
  2. height:4px;   
  3. border:3px #fff solid;   
  4. background:#a5cad6;   
  5. border-radius:5px;  

效果图

风车轴心实现效果

风车轴心实现效果

3.画风车的叶子

风车叶子的实现与柱子的实现原理相同,只不过是吧梯形倒过来了。

  1. height: 0;   
  2. width2px;   
  3. border-width50px 2px 0px 2px;   
  4. border-stylesolid solid none;   
  5. border-colorwhite transparent transparent ;  

4.定位风车页

这里使用css3中transform的rotate(旋转)来实现,有一点要注意的是,使用rotate时先要用origin定位旋转的圆心,默认是元素的中心,这里我们要定位在元素的顶部。

  1. -webkit-transform-origin:0px 0px;   
  2. -webkit-transform:rotate(60deg);  

效果图

风车扇页实现效果

风车扇页实现效果

用上面的办法依次画出三个风车扇面,并且定位好角度。

 

5.实现扇页的动态效果

静态的风车画好了,接下来我们要做的就是让它动起来。

前面我们可以把扇页定位在轴心元素的子元素,这样我们只要实现轴心的转动效果就可以让扇页也跟着动起来了。

下面是动画的实现

  1. @-webkit-keyframes rotate{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}  

把实现好的动画方法rotate放到我们的轴心元素中,扇页就可以动起来啦。

  1. -webkit-animation: rotate 4s linear infinite;  

6.完善效果并实现兼容性

至此我们的风车已经基本上完成啦,前面的代码都是兼容webkit核心浏览器(chrome,safari),接下来实现对其他浏览器的兼容,并且加上一个鼠标悬浮加快转动的效果我们的风车就算完成啦。

css3的表现在各个浏览器下的表现不尽相同,chrome浏览器下效果最佳,safari下风车的柱子会有像素失真的问题(同是webkit核心,不知道为什么表现那么不一样),后续会尝试解决这个问题。

下面提供demo和下载地址

       查看示例
 
0
2
分享到:
评论

相关推荐

    css3实现旋转风车动画特效.zip

    在本项目中,“css3实现旋转风车动画特效.zip”是一个包含使用CSS3技术创建的动态风车动画的资源包。这个特效适用于网页设计和开发,可以为网站增添互动性和趣味性,尤其适合儿童或者游戏类网站。接下来,我们将详细...

    纯CSS3模拟风车转动效果.zip

    在风车的例子中,我们可以创建一个名为“windmill-spin”的动画,通过定义不同时间点(如0%, 50%, 和100%)风车叶片的角度变化,来实现风车的旋转效果。 例如: ```css @keyframes windmill-spin { 0% { ...

    纯css3实现的风车效果.zip

    一共用了两种方法方法CSS3风车效果,一种是css3 图片实现的风车,另一种是纯css3实现的风车效果,把鼠标放在圆点上,风车会快速旋转,图片方法实现风车时,制作了一张风车图片供调用,相比之下,无图片版的CSS3风车...

    HTML5+CSS3大风车旋转动画.zip

    变换属性则允许我们对元素进行平移、旋转、缩放等多种操作,这里的重点是`rotate()`函数,用于实现风车的旋转效果。 JavaScript和jQuery是辅助实现交互性和更复杂行为的语言库。虽然HTML5和CSS3可以创建静态的动画...

    HTML5+CSS3实现大风车旋转动画.rar.rar

    在本案例中,“HTML5+CSS3实现大风车旋转动画.rar”文件很显然是一个教学资源,包含了一个使用HTML5和CSS3创建的大风车旋转动画的示例。 首先,HTML5是超文本标记语言的第五代版本,它引入了新的元素,如`<header>`...

    HTML5CSS3实现大风车旋转动画效果源码下载

    在风车动画中,`rotate()`将用于实现风车的连续旋转效果。 5. CSS3过渡(Transitions): - `transition`属性:可以平滑地改变两个CSS样式之间的转换,使得风车旋转更加流畅。在本项目中,可能会设置`transition: ...

    html5+css3风车

    1. `transform` 属性:通过旋转、缩放、平移等变换,实现风车叶片的动态旋转效果。 2. `animation` 规则:定义自定义动画,如叶片的旋转速度、方向和缓动效果。 3. `keyframes` 选择器:设置动画的关键帧,控制...

    纯CSS3山村风车动画特效.zip

    此外,为了在夜间背景下实现风车转动的视觉效果,开发者可能会使用CSS3的颜色、渐变和阴影属性,以及动画的延迟和填充模式,以创造出风车随风缓缓转动的逼真感。同时,考虑到性能优化,他们可能也运用了适当的硬件...

    纯CSS3模拟风车转动效果

    圆形自动旋转,对于CSS3来说已经是非常常见的功能了 一个简单的keyframes即可实现 使用方法: 1、将CSS样式拷贝过去 2、将index.html中的代码部分拷贝过去即可 (注意保持文件路径正确)

    HTML5 CSS3大风车旋转动画.zip

    "HTML5 CSS3大风车旋转动画"是一个利用这两种技术实现的炫酷视觉效果,它展示了HTML5的Canvas元素和CSS3的变换属性的强大功能。 首先,HTML5的Canvas是网页上的一个可编程图形区域,通过JavaScript来绘制2D和3D图形...

    CSS3 animation属性制作逼真的大风车旋转动画

    在本案例中,我们将深入探讨如何使用CSS3的animation属性来制作一个逼真的大风车旋转动画。 首先,让我们了解animation属性的基本构成。它由多个子属性组成,包括`animation-name`、`animation-duration`、`...

    CSS3动画效果源代码27个合集.zip

    纯CSS3模拟风车转动效果纯css3云彩动画效果纯css3制作出来的狐狸尾巴燃烧效果纯CSS3模拟跳动的音乐音符效果多种css3滚动下拉动画加载效果css3颗粒全屏动画效果懒人原生纯CSS3鼠标悬停抖动效果css3点击动画效果css3...

    纯css3实现的卡通灯塔风车动画效果源码.zip

    本资源“纯css3实现的卡通灯塔风车动画效果源码.zip”提供了一个利用CSS3特性构建的卡通灯塔和风车动画效果的实例。这个项目可能对前端开发者、网页设计师或者对CSS3动画感兴趣的人员极具价值。 首先,我们要理解...

    css3实现菱形布局步骤图效果源码下载

    在本案例中,我们关注的是使用CSS3实现菱形布局的步骤图效果。菱形布局通常用于创建独特的用户界面或者视觉吸引人的设计元素,比如游戏棋盘、图标或导航菜单。下面将详细阐述如何利用CSS3实现这一效果。 首先,我们...

    纯CSS3实现可折叠展开的风车动画效果源码.zip

    【标题】"纯CSS3实现可折叠展开的风车动画效果源码"是一个关于使用现代CSS3技术创建交互式动画的实例。这个压缩包中包含的源码展示了一个风车模型,该模型能够通过用户的交互(如点击)进行折叠和展开的动作,并且带...

    纯CSS3实现的山谷日落风车动画效果源码.zip

    接着,我们来看看如何使用CSS3的transform属性来实现风车叶片的旋转。`transform`允许我们对元素进行二维或三维的变换,如旋转(rotate)、缩放(scale)、平移(translate)等。在这个场景中,`rotate`函数被用来使...

    纯css3简单旋转风车动画特效.zip

    本教程将深入讲解如何利用CSS3实现一个简单的旋转风车动画特效。通过这个实例,我们可以学习到CSS3的关键帧动画(@keyframes)、变换(transform)以及过渡(transition)等核心概念。 首先,我们需要理解CSS3的...

Global site tag (gtag.js) - Google Analytics