幽灵按键

幽灵按钮:
也叫透明按钮,顾名思义,也就是在设计网页中的按钮时,不在设计复杂色彩、样式、和纹理,而是外仅以线框示意轮廓,内只用文字示意功能,背景透出,与整个页面/背景合而为一的设计方式。国外的设计师称之为“幽灵按钮”(Ghost Buttons),盛赞这种按钮通透简约,贴合整体风格又不失神韵,别具魅力。这种按钮的设计早已有之,但是在ios和安卓双双风格转向之后,成了网页设计的新趋势,拥有类似设计的网页设计作品如雨后春笋一般,映入眼帘。

下面是我用html css jQuery 简单做得一个幽灵按键。

首先是body内容

<div class="box">
        <div id="mission" class="link link-mission" >  
            <span class="icon"></span>
            <a href="#" class="button" data-text=" MY missoin 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
                <img src="arrow.png" class="arrow" alt="arrow">
            </a>
        </div>
        <div id="play" class="link link-play" >
            <span class="icon"></span>
            <a href="#" class="button" data-text="This is my playground">
                <span class="line line-top"></span>
                <span class="line line-left"></span>
                <span class="line line-right"></span>
                <span class="line line-bottom"></span>
                PLAY
                <img src="arrow.png" class="arrow" alt="arrow">
            </a>
        </div>
        <div id="touch" class="link link-touch">
            <span class="icon"></span>
            <a href="#" class="button" data-text="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>
                TOUCH
                <img src="arrow.png" class="arrow" alt="arrow">
            </a>
        </div>
        <div class="tooltip">
            <em></em>
            <span></span>
        </div>
    </div>

这个图片是实现之后的截图 , 上方有三个div 分别存放这三块内容,最后一个div是当鼠标悬浮在图片下边的按钮上时显现出来的一个tip。当鼠标放到上面三个图片上时,这三个图片会旋转360度,并且会稍微放大一点,当鼠标移入下面的按钮时,按钮的四个角会有四条线出现并移动到按钮的四条边上,并且按钮中的箭头会向右移动微小距离。

接下来是样式的设计,css代码

/*样式的初始化*/
* {
    margin: 0;
    padding: 0;
}

body {
    background-color: #333;
}
/*设置整个盒子*/
.box {
    width: 1000px;
    height: 220px;
    margin: 200px auto;
}
/*设置三块内容的公共样式*/
.box .link {
    width: 200px;
    height: 300px;
    float: left;
    margin-left: 100px;
}
/*旋转图标样式*/
.box .link .icon {
    width: 200px;
    height: 150px;
    display: block;
    margin-bottom: 50px;
    background-repeat: no-repeat;
    background-position: center center;
    transition: 0.4s linear;
    -webkit-transition: 0.4s linear;
    -moz-transition: 0.4s linear;
    -o-transition: 0.4s linear;
}
.box .link-mission .icon {
    background-image: url(missoin2.png);

}
.box .link-play .icon {
    background-image: url(play2.png);
}
.box .link-touch .icon {
    background-image: url(touch2.png);

}
.box .link .icon:hover {
    transform:rotate(360deg) scale(1.2);
    -webkit-transform:rotate(360deg) scale(1.2);
    -moz-transform:rotate(360deg) scale(1.2);
    -o-transform:rotate(360deg) scale(1.2);
}

/*方块按钮样式*/
.box .link .button {
    position: relative;
    display: block;
    width: 200px;
    height: 50px;
    line-height: 50px;
    font-size: 25px;
    box-sizing: border-box;
    padding-left: 10px;
    text-decoration: none;
    color: #2ecc71;
    border: 2px solid rgba(255,255,255,.6);
}
.box .link .button .arrow {
    position: absolute;
    right:20px;
    width: 50px;
    height: 50px;
    transition: 0.1s linear;
}
.box .link .button:hover {
    border: :2px solid rgba(255,255,255,0);
}
.box .link .button:hover .arrow {
    right: 5px;
}
.box .link .button .line {
    position: absolute;
    display: block;
    background:none;
    transition: 0.4s ease;
    -webkit-transition: 0.4s ease;
}

.box .link .button .line-top {
    left: -100%;
    top: -2px;
    width: 0;
    height: 2px;
}
.box .link .button:hover .line-top {
    width: 200px;
    left: -2px;
    background-color: #ffffff;
}

.box .link .button .line-bottom {
    right: -100%;
    bottom: -2px;
    width: 0;
    height: 2px;
}
.box .link .button:hover .line-bottom {
    width: 200px;
    right: -2px;
    background-color: #ffffff;
}

.box .link .button .line-left {
    left: -2px;
    bottom: -100%;
    width: 2px;
    height: 0;
}
.box .link .button:hover .line-left {
    bottom: -2px;
    height: 50px;
    background-color: #ffffff;
}

.box .link .button .line-right {
    right: -2px;
    top: -100%;
    width: 2px;
    height: 0;
}
.box .link .button:hover .line-right {
    top: -2px;
    height: 50px;
    background-color: #ffffff;
}

/*悬浮在按钮上时上面出现的提示框的样式*/
.box .tooltip {
    position: absolute;
    width: auto;
    padding: 0 15px;
    height: 35px;
    line-height: 35px;
    background-color: #2dcb70;
    font-size: 18px;
    color: #ffffff;
    border-radius: 5px;
    display: none;
}
.box .tooltip span {
    position: absolute;
    display: block;
    width: 0;
    height: 0;
    border: 8px solid transparent;
    border-top-color:#2dcb70;
    left: 50%;
    margin-left: -8px;
}

css样式的设计我就不细说的,哪一块代码设计哪里的样式都注释上了

最后就是jQuery代码了

$(function(){
        $(".button").mouseenter(function(){
            var tiptext = $(this).attr("data-text"); //动态获取内容并添加到tooltip的em中
            // console.log(tiptext);
            $(".tooltip em").text(tiptext);
            var leftLoc = $(this).offset().left;
            var cutLeft = ($(".tooltip").outerWidth()-$(this).outerWidth())/2;     //计算上面悬浮块与下面按钮宽度之差,方便将悬浮块放到按钮的正中间
            $(".tooltip").css({
                left:leftLoc - cutLeft,
                top:300,
                display:"block"
            }).animate({
                top:350,
            },30)
            }).mouseleave(function(){
                $(".tooltip").css({
                    display:"none"
                });
            });
        })

是不是很简单,记得在编写jQuery代码前先引入jQuery哦,好了今天就到这里了。

时间: 2024-08-02 06:59:45

幽灵按键的相关文章

13.Linux键盘按键驱动 (详解)

版权声明:本文为博主原创文章,未经博主允许不得转载. 在上一节分析输入子系统内的intput_handler软件处理部分后,接下来我们开始写input_dev驱动 本节目标: 实现键盘驱动,让开发板的4个按键代表键盘中的L.S.空格键.回车键 1.先来介绍以下几个结构体使用和函数,下面代码中会用到 1)input_dev驱动设备结构体中常用成员如下: struct input_dev { void *private; const char *name; //设备名字 const char *ph

【jQuery05】通过按键 来切换 class

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <sc

OSAL之按键驱动

本博文根据协议栈1.3.2,尊重原创,注明出处,欢迎转载 学习按键驱动的主要有两大块: 第一:按键引脚设置: 第二:按键事件的触发检测与轮询,以及按键消息的发送 先说明第一大块,按键引脚设置, 超出cc2540片子从机的按键两个按键,按键是共地.所以它的触发方式是下降沿触发按键中断,同时程序对按键按下这个动作检测是中断方式检测,一旦有按键按下,触发一个按键轮询函数执行,同时把对按键的检测方式换成轮询模式.所以对按键引脚设置的内容也就出来了.主要一下几个方面: 1.设置按键映射到的物理引脚GPIO

20150218【改进】IMX257实现GPIO-IRQ中断按键获取键值驱动程序

[改进]IMX257实现GPIO-IRQ中断按键获取键值驱动程序 2015-02-18 李海沿 一.使用struct pin_desc 管理按键的值 1.定义结构体 2.将前面我们申请中断时写的(void *)1修改为 &pins_desc[n] 在ioctl中,设置中断中修改 在key_release中释放中修改 3.在中断程序中利用我们定义的struc pins_desc判断并得到按键的值 4.得到按键键值后,唤醒程序,在read函数中返回键值 附上驱动源程序: 1 /***********

20150218【改进信号量】IMX257实现GPIO-IRQ中断按键获取键值驱动程序

[改进信号量]IMX257实现GPIO-IRQ中断按键获取键值驱动程序 2015-02-18 李海沿 前面我们使用POLL查询方式来实现GPIO-IRQ按键中断程序 这里我们来使用信号量,让我们的驱动同时只能有一个应用程序打开. 一.首先在前面代码的基础上来一个简单的信号 1.定义一个全局的整形变量 2.在打开函数中,每次进入打开函数canopen都自减1, 3.当我们不使用时,在realease 中canopen自加1 4.这样就实现了一个简单的信号量,我们编译,测试 当我们使用两个应用程序来

20150218【改进Poll定时查询】IMX257实现GPIO-IRQ中断按键获取键值驱动程序

[改进Poll定时查询]IMX257实现GPIO-IRQ中断按键获取键值驱动程序 2015-02-18 李海沿 按键驱动程序中,如果不使用read函数中使程序休眠的,而是还是使用查询方式的话,可以使用Poll函数,来控制一定时间内,如果有按键发生,则立即返回键值. 同时,poll也可以同时监控多个(比如说按键,鼠标,等)一旦发生事件则立即返回. 我们在linux查看帮助: 从帮助中的说明得知, poll, ppoll - wait for some event on a file descrip

uCGUI 按键窗口切换机制(更新篇)

在之前文章中,讲述了一个低内存使用量的的窗口切换机制.有人会问,低内存使用量是多低呢,我这里举个例子.我有一个项目中使用到本切换机制,128*64的单色屏,初步计算有105个窗口(后面还会增加),总内存使用量(包括任务栈)=105*3*4(窗口树) + 1024(公共buff) + 512(任务栈) + 1024*3(uCGUI动态内存) = 6k左右.从这个数字可以看出内存算是使用比较少的了.毕竟有100多个窗口,我在设计时也就只做了10多个窗口,这100多个窗口就是由10多个窗口大量复用组合

Android禁止按键关闭AlertDialog

在Android系统中,默认点击AlertDialog中的按键都会关闭该AlertDialog,但有些情况下我们并不希望使对话框关闭,或者希望使对话框在自己需要的时候再关闭. 例如我现在做的一个项目,通过AlertDialog读取用户输入的一个值,希望只有在判断值为正确范围内才关闭该对话框,否则对话框予以保留,并给以用户相应的提醒. 可以利用反射的机制来实现这一效果: 不关闭对话框: ? 1 2 3 4 5 6 7 8 9 10 // 使对话框无法关闭 try {     Field field

M4—按键识别

三.KEY 3.1  初始化 1.相应端口时钟使能 2.配置GPIO为输入模式 3.根据实际电路图 配置浮空输入,不用上下拉 3.2  按键识别 (1)一般按键步骤(延时消抖) 1. 判断相关的管脚是否为有效电平 2. 如果为有效电平,则进行消抖处理,如延时消抖(5~10ms) 3. 再次判断是否为有效电平.如果为有效电平,则确实是按键按下了,而不是干扰. 4. 识别到后做按键处理 5. 等待按键释放 //延时消抖 //返回键值 u8 key_scanf(void) { u8 key=NO_KE