html:

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title> <!--
主要知识点:
1.transform 事件发生后需要变的样子
2.transition 主体样式中定义
3.box-sizing
4.border-radius
-->
<link rel="stylesheet" type="text/css" href="style.css">
<script src="jquery-2.1.1.min.js"></script>
</head>
<body>
<div class="box">
<div class="link link-miss">
<span class="icon"></span>
<a href="#" class="button" data-title="My mission is clear">
<span class="line line-top"></span>
<span class="line line-left"></span>
<span class="line line-right"></span>
<span class="line line-bottom"></span>
MISSION
</a>
</div>
<div class="link link-play">
<span class="icon"></span>
<a href="#" class="button" data-title="This is my palyground">
<span class="line line-top"></span>
<span class="line line-left"></span>
<span class="line line-right"></span>
<span class="line line-bottom"></span>
MISSION
</a>
</div>
<div class="link link-touch">
<span class="icon"></span>
<a href="#" class="button" data-title="Lets do something together">
<span class="line line-top"></span>
<span class="line line-left"></span>
<span class="line line-right"></span>
<span class="line line-bottom"></span>
MISSION
</a>
</div>
<div class="tip">
<em></em>
<span></span>
</div>
</div>
<script>
$(function(){
$(".link .button").hover(function(){
var title = $(this).attr("data-title");
$(".tip em").text(title);
var pos= $(this).offset().left;
var dis = ($(".tip").outerWidth()-$(this).outerWidth())/2;
var f = pos-dis;
          //从top195 -> 160变化
$(".tip").css({"left":f+"px"}).animate({"top":195,"opacity":1},300);
},function(){
          //鼠标移出回到本来的样式
$(".tip").animate({"top":160,"opacity":0},300);
})
})
</script>
</body>
</html>

css:

*{
margin:;
padding:;
} body{
background: #333;
} .box{
width: 1000px;
height: 280px;
margin: 50px auto;
} .box .link{
width: 205px;
height: 280px;
margin: 0 20px;
float: left;
position: relative;
}
/*
Transition •定义和用法
•transition 属性是一个简写属性,用于设置四个过渡属性:
•transition-property
•transition-duration
•transition-timing-function
•transition-delay
•语法
•transition: property duration timing-function delay;
•值描述
•transition-property规定设置过渡效果的 CSS 属性的名称。
•transition-duration规定完成过渡效果需要多少秒或毫秒。
•transition-timing-function规定速度效果的速度曲线。
•transition-delay定义过渡效果何时开始(延时执行时间)。 •浏览器支持
•Internet Explorer 10、Firefox、Opera 和 Chrome 支持 transition 属性。
•Safari 支持替代的 -webkit-transition 属性。
•注释:Internet Explorer 9 以及更早版本的浏览器不支持 transition 属性。*/
/*span属于内敛元素,不具备宽高,使用display属性显示*/
.link .icon{
display: inline-block;
width: 100%;
height: 190px;
transition: 0.2s linear;
-webkit-transition: 0.2s linear;
-o-transition: 0.2s linear;
-moz-transition: 0.2s linear;
-ms-transition: 0.2s linear;
} .link-miss .icon{
background:url("mission.png") no-repeat center center;
} .link-play .icon{
background: url("play.png") no-repeat center center;
} .link-touch .icon{
background: url("touch.png") no-repeat center center;
}
/*Transform •定义和用法
•transform 属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜
•rotate(angle )定义 2D 旋转,在参数中规定角度
•rotateX(angle)定义沿着 X 轴的 3D 旋转。
•rotateY(angle)定义沿着 Y 轴的 3D 旋转。
•rotateZ(angle)定义沿着 Z 轴的 3D 旋转。
•scale(x,y)定义 2D 缩放转换。
•scale3d(x,y,z)定义 3D 缩放转换。
•scaleX(x)通过设置 X 轴的值来定义缩放转换。
•scaleY(y)通过设置 Y 轴的值来定义缩放转换。
•scaleZ(z)通过设置 Z 轴的值来定义 3D 缩放转换。 •浏览器支持
•Internet Explorer 10、Firefox、Opera 支持 transform 属性。
•Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换)。
•Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D 转换)。
•Opera 只支持 2D 转换。 */
/*.link:hover .icon*/
.link .icon:hover{
transform: rotate(360deg) scale(1.2);
-ms-transform: rotate(360deg) scale(1.2);
-webkit-transform: rotate(360deg) scale(1.2);
-o-transform: rotate(360deg) scale(1.2);
-moz-transform: rotate(360deg) scale(1.2);
}
/*
•box-sizing
•定义和用法
•box-sizing 属性允许以特定的方式定义匹配某个区域的特定元素。
•语法
•box-sizing: content-box|border-box|inherit
•值描述
•content-box
•宽度和高度分别应用到元素的内容框。
•在宽度和高度之外绘制元素的内边距和边框。
•border-box
•为元素设定的宽度和高度决定了元素的边框盒。
•就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。
•通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。
•inherit 规定应从父元素继承 box-sizing 属性的值。 •浏览器支持
•Internet Explorer、Opera 以及 Chrome 支持 box-sizing 属性。
•Firefox 支持替代的 -moz-box-sizing 属性。*/
.button{
display: block;
width: 180px;
height: 50px;
text-decoration: none;
line-height: 50px;
color:#2DCB70;
font-family: "微软雅黑", Arial, Helvetica, sans-serif;
font-weight: bolder;
border: 2px solid rgba(255,255,255,0.8);
padding-left: 20px;
margin: 0 auto;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
background: url("allow.png") no-repeat 130px center;
position: relative;
transition: 0.4s ease;
-webkit-transition: 0.4s ease;
-o-transition: 0.4s ease;
-moz-transition: 0.4s ease;
-ms-transition: 0.4s ease;
} .button:hover{
border: 2px solid rgba(255,255,255,1);
background-position: 140px center;
} .button .line{
display: block;
position: absolute;
background: none;
transition: 0.4s ease;
-webkit-transition: 0.4s ease;
-o-transition: 0.4s ease;
-moz-transition: 0.4s ease;
-ms-transition: 0.4s ease;
} .button:hover .line{
background: #fff;
} /*
top:
1.高度不变
2.宽度变(0-盒子的宽度)
3.位置:左-右
*/ .button .line-top{
height: 2px;
width: 0px;
left: -110%;
top: -2px;
} .button:hover .line-top{
width: 100%;
left: -2px;
} .button .line-bottom{
width: 0px;
height: 2px;
right: -110%;
bottom: -2px;
} .button:hover .line-bottom{
width: 100%;
right: -2px;
} .button .line-left{
width: 2px;
height:;
left: -2px;
bottom: -110%;
} .button:hover .line-left{
height: 100%;
bottom: -2px;
} .button .line-right{
width: 2px;
height: 0px;
right: -2px;
top: -110%;
} .button:hover .line-right{
height: 100%;
top: -2px;
} .box .tip{
position: absolute;
padding: 0px 14px;
height: 35px;
line-height: 35px;
background: #2DCB70;
color: #fff;
top: 160px;
font-size: 16px;
font-weight: normal;
text-transform: none;
margin: 0 auto;
border-radius: 3px;
opacity:;
} .tip em{
font-style: normal;
}
/*下三角定义,通过border上,下,左,右显示一部分颜色实现*/
.tip span{
position: absolute;
width:;
height:;
overflow: hidden;
border: 7px solid transparent;
border-top-color: #2DCB70;
left: 50%;
margin-left: -3px;
bottom: -14px;
}

最新文章

  1. Excel&mdash;如何解决数组求和运算时行列不匹配产生的错误
  2. VBA笔记(一)
  3. mysql mybatis-generator plugin 分页
  4. jQuery动态提示消息框效果
  5. ML_R Kmeans
  6. APK签名校验绕过
  7. new和delete为什么要匹配
  8. Mysql中Key与Index的区别
  9. Object-c中间initialize 与 辛格尔顿
  10. JAVA内存模型与线程
  11. Java框架之Hibernate(四)
  12. spoj 839-Optimal Marks
  13. mysql 的 alter table 操作性能小提示
  14. python网络编程(十一)
  15. Javascript : require.js 的使用(例子)
  16. CentOS 7 配置Tomcat9连接MySQL
  17. 【微信公众号开发】【10】JSJDK相关
  18. opencv输出图片像素值
  19. MD5密码加密
  20. cookie的安全性问题

热门文章

  1. jstl c:choose&gt;、&lt;c:when&gt;和&lt;c:otherwise&gt;标签的简单使用介绍
  2. Django学习笔记之Queryset的高效使用
  3. flume从log4j收集日志输出到kafka
  4. goland 使用简单配置-不断更新
  5. 20145310 《Java程序设计》第2周学习总结
  6. Linux系统巡检项目
  7. nuget sources
  8. 爬虫之动态HTML处理(Selenium与PhantomJS )动态页面模拟点击
  9. maven(一)maven自带的插件
  10. 【网络结构可视化】Visualizing and Understanding Convolutional Networks(ZF-Net) 论文解析