听着好像很牛的特效——幽灵按钮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: 0;
    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: 0;
}
.tip em{
    font-style: normal;
}
.tip span{
    position: absolute;
    width: 0;
    height: 0;
    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特效,当然这是跑开了设计,但从技术角度,一个程序猿的角度来说的。

时间: 2024-10-09 15:19:21

听着好像很牛的特效——幽灵按钮DOM的相关文章

设计趋势:网页设计中的幽灵按钮

幽灵按钮——那些透明的.可点击的物体——忽然间就变得无处不在.以狂风暴雨之势席卷正网页设计领域.谁能想到,像按钮这么简单的事物,能够改变我们看待网页设计的方式? 参考:预测网页设计趋势 什么是幽灵按钮? 幽灵按钮有着最简单的扁平外形——正方形.矩形.圆形.菱形——没有填充色,只有一条淡淡的轮廓.除了外框和文字,它完完全全(或者说几乎完全)透明.(因此得名“幽灵”) 这些按钮通常比网页上传统的可点击按钮大,也被置于显要位置,例如屏幕的正中央. 各种类型的网站(包括移动APP)中都能发现幽灵按钮的身

JS特效之很牛叉的轮播图

//HTML部分: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #289c97 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #2b7ec3 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Consolas; color: #4f5d66 }

(转) 很牛的求职经历

工作刚刚落实,论文也刚完成,终于有时间对自己的求职历程及求职经验进行总结了.应同学要求,最近准备书写系列文章“我的求职历程及经验分享”,请大家关注,谢谢! (一):求职历程总结 2007 年1月10日,随着在三方协议上郑重签下自己的名字,我的求职历程终于划上了一个圆满的句号.在这三个月漫长而艰辛的过程中,我付出了很多,经历了很多, 也收获了很多.这一路走来,要感谢的人太多太多,尤其要感谢每一个在找工作过程中关心.帮助过我的人,我会一生铭记你们的恩情.现在,尘埃落定,到了该回 报的时候,我首先要回

我是个很牛逼地活在别人眼里的傻逼

| 忏悔录 | 现在的我 沉心静气,尝试专一 曾经的我 自卑自负,大落大起 生活教会我沉稳与内敛 而背后的老师 是不堪回首的自己 我不会避讳什么,或使用小A.B兄一类的笔名自欺欺人,这就是我的故事,也许,也是众多和我一样自卑与自负一体,但已开始悔悟的朋友们的故事--这篇文章,除了自省,还想给有像我一样经历得同仁说一句:乖,醒一醒.--Emerson 1401354763 偶然看到一篇名为<我曾是个很牛逼地活在别人眼里的傻逼>的微信.冲着标题进去,想看看这位到底是怎么牛逼又怎么傻逼.看完,懵逼-

(转载)两篇很牛的vim使用技巧

读本文之前请注意: 1. 本文的目标是提供一些vim的使用技巧,利用这些技巧可以提高vim的操作效率.部分技巧在vi上也可以使用,但是现在基本上都是用vim了. 2. 本文是整理和总结使用技巧,而非讲解vim入门,因此不会涉及最基本的使用,例如如何上移或下移光标,对此类操作请参阅任何一本vim或者vi教程. 3. 本文阅读对象是了解了vim的基本操作,而希望高效地利用vim进行工作的人.熟练使用vim的人自然不必细读,如果能留下您的宝贵意见,本人将感激不尽. 4. 本文由本人搜集整理,转载请注明

创业前,我以为我很牛

创业前,我以为我很牛,但不知道自己那儿牛.创业的4年(201001到201401)让我明白了:(一),我那些地方确实牛.(二),我那些地方很有牛的天赋,但没能牛起来.(三),那些地方,我怎么也牛不起来.或者说,牛起来的成本太高.第一点让我可以扬长避短.第二点让我今年的潜力激发很顺利.第三点为我明年寻找合作者指明了方向. 相信我2016年的第二次创业一定会成功.

在图里, 你看到了什么? 5秒内看到的话, 你很牛

5秒时间太短了... 在图里, 你看到了什么? 5秒内看到的话, 你很牛

很牛的js弹出层-artDialog4.1.2

[转]很牛的js弹出层-artDialog4.1.2 博客分类: javascript javascript 转自:http://www.iteye.com/topic/1117866 Sharpleo 写道 先让我们看看他提供的几种皮肤吧  功能: Java代码   1. 传入字符串 art.dialog({ content: '我支持HTML' }); 效果: Java代码   2. 传入HTMLElement 备注:1.元素不是复制而是完整移动到对话框中,所以原有的事件与属性都将会保留 2

关于“幽灵按钮”的一些事

最近,扁平化UI越来越充斥在我们的生活中,应用了扁平化UI设计思想的东西也是随处可见,而在这种大环境下一个新的名词也就应运而生了:幽灵按钮(Ghost Buttons). 幽灵按钮应当算得上是网页前端比较前卫的一种设计了,它的设计思想秉承了扁平化的极简原则,摒弃按钮的复杂背景以及复杂的logo,只是在实现的时候用几个概要的文字,以及几个边框即可完成一个按钮的设计.这种设计的好处就是可以完美的融入到背景中,设计精简,而且很能融入背景.想要凸显按钮也简单,只需把文字颜色设计得与背景颜色色差值较大,或