听着好像很牛的特效——幽灵按钮DOM
给大家分享一个听着好像很牛的东西——幽灵按钮,这个玩意对于艺术设计细胞在高中决定不在考试试卷上画画的我来说,实在不感冒。但是这个按钮的设计元素很流行,一个网页东西不做几个,光放上几个按钮就会显得很高端。现在打开这个链接直接感受!! !
链接: http://www.iuvo.si/
网页预览图:
就是这样一个网页,主要内容就是幽灵按钮!下面已经没有什么欣赏水平的我,来解剖这个看似很牛的按钮
首先,我作为一个专业的程序猿,最美的肯定是我女朋友,然后下面才是0和1,现在我就将这个按钮分解成,额,肯定不是0和1,我又不是机器。将这个按钮分解成html+CSS+JavaScript,嗯,就分解成这些。
首先html之前,我们先找几张图片,就拿上面的网页来说,拿到上面的几个图标
(这个大的是我截图的,原图的图标是透明的放上来你们也看不见,就不取了)
有了素材,我们正式开始 HTML部分,解释都写在备注了
<div class="box"> ////首先写一个大的box容器放的按钮
<div class="link link-miss">//一共写三个按钮,这是第一个
<span class="icon"></span>//用一个span将按钮上面的图片当背景贴进去,在后面的css中实现
<a href="#" class="button" data-title="My mission is clear">//我们的主角,幽灵按钮的主体部分,data-title之后我们增加鼠标放上去出现的提示文本,之后用JS操作
<span class="line line-top"></span>//四个span是鼠标放上去之后出现的线,我们之后通过CSS3实现
<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>
下面是CSS部分
写CSS部分的时候,你要知道的CSS3的一个属性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 属性。
IE9之前的版本不支持transiton属性
下面先来图片的旋转
//设置背景图片的样式和动画过渡效果
.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;
}
//设置让图片翻滚旋转的抽风
.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);
}
好了这样图片的效果设置好了,下面开始主角幽灵按钮
//按钮的主体部分
.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;
}
//鼠标移动上面,边框会改变透明度,不仔细看看不到,毕竟就改变了0.2的透明度
.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;
}
//移动到上面,颜色编程#fff,就是白色啦
.button:hover .line{
background: #fff;
}
//下面就是分别给每条线加上不同的动画特效了
.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;
}
幽灵按钮就这样完成了。最后css写提示框的样式
.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;
}
.tip span{
position: absolute;
width:;
height:;
overflow: hidden;
border: 7px solid transparent;
border-top-color: #2DCB70;
left: 50%;
margin-left: -3px;
bottom: -14px;
}
这样就css部分就全部完成了,JS部分就是操作提示框出现
JS部分:
$(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;
$(".tip").css({"left":f+"px"}).animate({"top":195,"opacity":1},300);
},function(){
$(".tip").animate({"top":160,"opacity":0},300);
})
})
别忘了用JQ插件,这样简单的操作配合之前data-title的内容,就能很好的添加上提示内容了,而且还是带有动画的提示内容。
最后,幽灵按钮的实现并不复杂,只要能熟练的使用HTML和CSS即可,复杂的js操作都没有,所以,听着好像很牛的特效——幽灵按钮,说白了,就是CSS3特效,当然这是跑开了设计,但从技术角度,一个程序猿的角度来说的。
听着好像很牛的特效——幽灵按钮DOM的更多相关文章
- 你很牛B,面试却没过,为什么?
点击标题下「飞测」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是我们期 ...
- 一个很牛的计算pi的c程序!
C语言是面向过程的一种高级程序设计语言,它在世界范围内使用很广泛,而且很流行.很多大型的应用软件,基本上是用C语言所编写的.在对操作系统以及系统使用程序.需要对硬件进行操作的场合,C语言较其他的高级语 ...
- 不推荐别的了,IDEA 自带的数据库工具就很牛逼!
MySQL 等数据库客户端软件市面上非常多了,别的栈长就不介绍了, 其实 IntelliJ IDEA 自带的数据库工具就很牛逼,不信你继续往下看. 本文以 IntelliJ IDEA/ Mac 版本作 ...
- LOD,听起来很牛逼的样子
<!DOCTYPE html> <html lang="en"> <head> <title>three.js webgl - le ...
- 两篇很牛的vim使用技巧
读本文之前请注意: 1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率.部分技巧在vi上也可以使用,但是现在基本上都是用vim了. 2. 本文是整理和总结使用技巧,而非讲 ...
- 基于jQuery很牛X的批量上传插件
上传功能应该是每个网站必备的工具之一,因此出现了出现了很多各式各样的上传插件! 本文基于个人经验和使用从插件的:交互体验,易用性,文档,美观度出发,为大家推荐三款很NX的批量上传插件! 下面三款插件的 ...
- 教-----------有时候就是那么纠结,教的时候不提问题,好像很懂,最后又来纠缠你!真是ctmb
A热心满满教导B 几分钟后...B”都懂了“ B几分钟后.又把你叫来.(走过去,您好,我还有个问题,能帮我回答下吗?不耽误你多少时间,) A已经走一段距离 , 思维已经在别的事情上了,变得好没有耐 ...
- []cp,转载]提示MyEclipse Trial Expired,如何手动获取MyEclipse 注册码!很牛!
1.建立JAVA Project,随便命名,只要符合规则就行. 2.在刚刚建好的Project右击src,新建一个类,命名为MyEclipseGen,把.java里本来有的代码全部删掉,再把下面的代码 ...
- VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布(好像很不错,有六张插图说明)good
为什么要在VS2008中使用QT静态编译呢?很简单,因为VS2008编译器编译出来的文件比mingw编译的要几乎小一半. 好了现在我们来做些准备工作,VS2008自然要安装的,然后打上SP1的补丁.然 ...
随机推荐
- javaBean
JavaBean是一个满足特定规范的java类, 1.该类必须是公共类 2.必须具有一个默认无参的public构造函数,从而可以使用new关键字直接对其进行实例化 3.实现可序列化接口 4.属性必须是 ...
- js函数的传参是按值传对递
根据js高级程序设计第三版编写,对于函数的参数只能按值传递是这样解释的: ECMAScript 中所有函数的参数都是按值传递的.也就是说,把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另 ...
- hibernate缓存机制详细分析 复制代码 内部资料 请勿转载 谢谢合作
您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内 ...
- JS调用JCEF方法
坐下写这篇文章的时候,内心还是有一点点小激动的,折腾了一个多星期,踩了一个又一个的坑,终于找到一条可以走通的路,内心的喜悦相信经历过的人都会明白~~~~~今儿个老百姓啊,真呀个真高兴啊,哈哈,好了,废 ...
- up_modembin.sh
--- 编译modem生成bin文件cp到指定文件夹 up_modembin.sh #!/bin/bash flag=${} == $flag ];then # echoMsg find vendor ...
- [LeetCode_2] Add Two Numbers
LeetCode: 2. Add Two Numbers /** * Definition for singly-linked list. * struct ListNode { * int val; ...
- (收集)linux环境下乱码的解决方法
**************************** 就是从数据库中取出来时,在存入linux的文件里时,在字符流时制定编码格式.代码如下: FileOutputStream fos=new Fi ...
- jxl_1
import java.io.File; import jxl.CellView; import jxl.Workbook; import jxl.format.Alignment; import j ...
- RealSense开发-搭建C#开发环境
一.前言 RealSense的开发环境主要包括如下几部分: 硬件:RealSense摄像头(此处以SR300为例)+搭载Intel酷睿6代处理器的PC机(其实4代处理器也能跑起来): 软件:Windo ...
- 转!java基础笔记
原博文地址:http://blog.csdn.net/u012152619/article/details/48024345 Java标识符 Java所有的组成部分都需要名字.类名.变量名以及方法名都 ...