纯CSS仿制Google女生节Doodle

66 篇文章 1 订阅
52 篇文章 0 订阅

看到google今天的女生节Doodle,自己用纯css仿制一个,送给老妈、老婆、女儿。


大家可以点这里在线观看效果,点这里下载收藏效果

实现原理

1.利用checkbox侦听处理单击事件。

2.单击按钮、花、背景分别作盒子,公用背景并作背景偏移。

3.单击按钮之后,利用:checked伪类和兄弟选择符,为花、背景盒子作动画。

好的,来看html

<input type="checkbox" id="play" />
<div id="cont">
  <label id="btn" for="play"></label>
  <div id="circle"></div>
</div>
css文件,具体参见注释。

/* 设置容器 */
#cont{
  width:482px;
  height:250px;
  background:url("http://www.google.com/logos/2014/womensday14/sprite-initial.png");
  background-position:-20px -10px;
  position:absolute;
  left:50%;
  top:50%;
  margin:-125px 0 0 -241px;
}
/* 设置按钮 */
#btn{
  width:60px;
  height:78px;
  position:absolute;
  left:204px;
  top:64px;
  background:url("http://www.google.com/logos/2014/womensday14/sprite-initial.png");
  background-position:-1495px -110px; 
  /* 确保垂直层次在#circle上面 */
  z-index:10;
}
#circle{
  /* 初始状态下,花不显示 */
  opacity:0;
  width:79px;
  height:79px;
  position:absolute;
  top:60px;
  left:184px;
  background:url("http://www.google.com/logos/2014/womensday14/sprite-initial.png");
  background-position:-1495px -190px;
  z-index:1;
}
/* hover状态下按钮样式 */
#btn:hover{
  cursor:pointer;
  background-position:-1495px -30px;
}
/* 单击之后,按钮隐藏 */
#play:checked~#cont #btn{
  display:none;
}
/* 单击之后,花显示,并轮转 */
#play:checked~#cont #circle{
  opacity:1;
  animation:roll 1.8s linear infinite;
}
/* 单击之后,背景动画,这里偷了个懒,帧比较少,注意一定是steps动画效果 */
#play:checked~#cont{
  animation:run 1.2s steps(1,end) infinite;
}
@keyframes run{
  0%{background-position:-20px -10px;}
  33%{background-position:-521px -10px;}
  66%{background-position:-1012px -10px;}
  100%{background-position:-20px -10px;}
}
@keyframes roll{
  0%{transform:rotate(0deg)}
  100%{transform:rotate(360deg)}
}
完工,请大家批评指正。
---------------------------------------------------------------

前端开发whqet,关注web前端开发技术,分享网页相关资源。
---------------------------------------------------------------

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值