情人节,教大家使用css画出一朵玫瑰花。
情人节到了,给大家来一朵高端的玫瑰花。
在网上看到的一个canvas实现的玫瑰花,效果很好,但是代码被压缩过,也没有注释,看的云里雾里的。
今天我教大脚用CSS来实现一朵玫瑰花。
先看效果

首先我们画出一个花瓣
1、画出一个长方形div,背景色设置成渐变色。
2、给四个角使用圆角,底部50%,顶部35%

然后使用css的3D属性
3D属性的详细请自行百度,这里不做详细介绍。
从Y轴方向上俯视玫瑰花,就是多个花瓣围绕圆心组成的同心圆。
如下图所示:

我们按照这个规则
1、越靠近中心层,花瓣数量越少
2、所有花瓣按在每层花瓣个数,均匀分布
这样就成为了含苞待放的玫瑰

要想让玫瑰花开发,那么每朵花瓣就不应该跟Y轴平行
必须要从跟Y轴形成向外的角度。
而且越向外层,角度越大。

这个时候就基本上完成了玫瑰花的效果了。
但是在chrome上,后边加入的div会盖在上边层上,并不一定是我们希望的效果。

所以我们要根据div的Z轴方向上的值来给div增加z-index属性。
z值越小,z-index越小。
最后我们跟玫瑰花加上叶子,跟之前花瓣原理是一样的,只是换了颜色和宽度而已。
而且向外开的角度也增大了一些

这里就已经完成了,我们把代码复制一份,然后使用requestAnimationFrame做动画效果。角度越来越大。就出现开花效果了。
演示效果请访问:http://suohb.com/work/flower2.htm
更多特效,请扫描下方二维码关注公众号:

情人节,教大家使用css画出一朵玫瑰花。的更多相关文章
- 樱花的季节,教大家用canvas画出飞舞的樱花树
		
又到了樱花的季节,教大家使用canvas画出飞舞的樱花树效果. 废话少说,先看效果. 演示效果地址:http://suohb.com/work/tree4.htm 查看演示效果 第一步,我们先画出一棵 ...
 - 用css画出三角形
		
看到有面试题里会有问到如何用css画出三角形 众所周知好多图形都可以拆分成三角形,所以说会了画三角形就可以画出很多有意思的形状 画出三角形的原理是调整border(边框)的四个方向的宽度,线条样式以及 ...
 - 如何用css画出三角形
		
看到有面试题里会有问到如何用css画出三角形 众所周知好多图形都可以拆分成三角形,所以说会了画三角形就可以画出很多有意思的形状 画出三角形的原理是调整border(边框)的四个方向的宽度,线条样式以及 ...
 - 用css画出三角形【转】
		
看到有面试题里会有问到如何用css画出三角形 众所周知好多图形都可以拆分成三角形,所以说会了画三角形就可以画出很多有意思的形状 画出三角形的原理是调整border(边框)的四个方向的宽度,线条样式以及 ...
 - css 画出三角形
		
技术分享不一定行文累赘 这里说说最简洁的 css 画出三角形 display: inline-block; border: 10px dashed transparent; border-left: ...
 - 用HTML+CSS画出一个同心圆
		
参加web前端校招的同学们经常会遇到这样的面试题:用HTML+CSS画出一个同心圆. 例如: 这道题主要考验的是基础盒模型布局能力和倒圆角属性的巧用. 1.html代码 <body> &l ...
 - CSS画出的各种形状图
		
利用CSS可以画出各种需要的图形目录[1]矩形[2]圆形[3]椭圆[4]直角三角形[5]正三角形[6]平行四边形[7]梯形[8]六角星[9]六边形[10]五角星简单图形 矩形div{ width: 1 ...
 - 一步一步教你用CSS画爱心
		
今天小颖给大家分享一个用CSS画的爱心,底下有代码和制作过程,希望对大家有所帮助. 第一步: 先画一个正方形.如图: <!DOCTYPE html> <html> <he ...
 - 用css画出对话框
		
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAa4AAAFSCAYAAACqpTv4AAAgAElEQVR4nO3deZBU5b3GcUIlVTG3bi
 
随机推荐
- 防止多个UIAlertView重叠弹出
			
http://www.jianshu.com/p/7ac398ef4532 项目中可能会遇到这种情况,好几个alertView因为逻辑关系全部弹出,用户需要一个个的点击才能将所有的alertView取 ...
 - CSU 1515 Sequence
			
莫队算法+map #include<cstdio> #include<cstring> #include<cmath> #include<map> #i ...
 - Use Wireshark to capture loopback traffic without a loopback adapter (转)
			
Use Wireshark to capture loopback traffic without a loopback adapter If you’ve ever used Wireshark f ...
 - 饼干是这样压缩的——PHP使用zlib扩展实现页面GZIP压缩输出
			
饼干是这样压缩的——PHP使用zlib扩展实现页面GZIP压缩输出 GZIP(GNU-ZIP)是一种压缩技术.经过GZIP压缩后页面大小可以变为原来的30%甚至更小.这样用户浏览的时候就会感觉很爽很愉 ...
 - 关于Apache,Mysql,PHP之间的关系
			
声明:以下为作者原创,转载请注明文章来源地址. 通过百度百科我们知道 Apache(全称Apache HTTP Server):是世界使用排名第一的Web服务器软件.可以在大多数计算机操作系统中运行, ...
 - Repeater绑定事件ItemDataBound中获取数据库中数据
			
protected void rp1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemTyp ...
 - iOS 专题 之 界面开发 之 控件
			
iOS 之 UIViewController iOS 之 Navagation Button iOS 之 UIButton iOS 之 UITextField iOS 之 UIStackView iO ...
 - iOS 之 UIStackView
			
UIStackView是iOS9新推出的布局控件,它的出现,可以说颠覆了以往的布局方式. 问题时,如果我使用UIStackView,它能用在iOS7.8系统中吗? 我要测试一下.测试程序我放到gith ...
 - Java Web快速入门——全十讲
			
Java Web快速入门——全十讲 这是一次培训的讲义,就是我在给学生讲的过程中记录下来的,非常完整,原来发表在Blog上,我感觉这里的学生可能更需要. 内容比较长,你可以先收藏起来,慢慢看. 第一讲 ...
 - eclipse xml自动提示
			
找到所需要的dtd文件: window->preferences->xml->xml catalog : public id 输入对应的字符串: