• html5+css3实战之-幽灵按钮


    动画效果预览

    网址:http://www.iuvo.si/

    1.首先分析幽灵按钮动画用到的动画效果有旋转,放大,淡入淡出

      1> 涉及 css3的 transform

                  rotate() 元素顺时针旋转

                  scale() 元素尺寸的放大或缩小

     2> css3 过渡效果 transition

     3> css 定位 position

         left:距离左边多少,正值向右,负值向左

         right:距离右边多少,正值向左,负值向右

         top:距离顶部多少,正值向下,负值向上

         bottom:距离底部多少,正值向上,负值向下

    2.实现幽灵按钮的步骤

       1> 页面元素布局

       2> 添加图片并加入过渡效果

       3> 设置按钮过渡效果

       4> 设置顶部、底部线条效果

       5> 设置左右线条动画效果

       6> 优化效果,响应式

    代码如下

    html代码

    <!doctype html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<link rel="stylesheet" href="css/style.css">
    	<script src="js/jquery-1.8.3.min.js"></script>
    	<script src="js/script.js"></script>
    </head>
    <body>
    	<div class="box">
    		<div class="link mission-link">
    			<span class="icon animated"></span>
    			<a class="button" data-title="My mission is clear">
    			<span class="line line-top"></span>
    			<span class="line line-right"></span>
    			<span class="line line-bottom"></span>
    			<span class="line line-left"></span>
    			Mission
    			</a>
    		</div>
    		<div class="link play-link">
    			<span class="icon animated"></span>
    			<a class="button" data-title="This is my playground">
    			<span class="line line-top"></span>
    			<span class="line line-right"></span>
    			<span class="line line-bottom"></span>
    			<span class="line line-left"></span>
    			Play
    			</a>
    		</div>
    		<div class="link touch-link">
    			<span class="icon animated"></span>
    			<a class="button" data-title="This is my playground demos">
    			<span class="line line-top"></span>
    			<span class="line line-right"></span>
    			<span class="line line-bottom"></span>
    			<span class="line line-left"></span>
    			Touch
    			</a>
    		</div>
    		<p class="tip"><em></em><span></span></p>
    	</div>
    </body>
    </html>
    

      css代码

    *{margin:0;
      padding:0;}
    
    body{background:#333;}
    
    .box{800px;
         height:280px;
         margin:50px auto;
         overflow:hidden;}
    
    .box .link{display:inline-block;
               205px;
               height:220px;
                margin:0 20px; 
               position:relative;}
    
    .link .icon{display:block;
                100%;
                height:180px;
                -moz-transition:ease-out 0.2s;
                -o-transition:ease-out 0.2s;
                -webkit-transition:ease-out 0.2s;
                transition:ease-out 0.2s;}
    
    .link .icon:hover{transform:rotate(360deg) scale(1.2);
                      -moz-transform:rotate(360deg) scale(1.2);
                      -o-transform:rotate(360deg) scale(1.2);
                      -webkit-transform:rotate(360deg) scale(1.2);}
    
    .mission-link .icon{background:url(../images/mission.png) no-repeat center 0;}
    
    .play-link .icon{background:url(../images/play.png) no-repeat center 0;}
    
    .touch-link .icon{background:url(../images/touch.png) no-repeat center 0;}
    
    .button{display:block;
    	      180px;
            height:50px;
            border:2px solid rgba(255,255,255,0.8);
            line-height:50px;
            padding-left:20px;
            box-sizing:border-box;
            -webkit-box-sizing:border-box;
            -o-box-sizing:border-box;
            -moz-box-sizing:border-box;
            margin:0 auto;
            font-weight:bold;
            font-size:18px;
            text-decoration:none;
            text-transform:uppercase;
            font-family:Arial;
            color:#2DCB70;
            background:url(../images/allow.png) no-repeat 130px center;
            -moz-transition:ease 0.4s;
            -o-transition:ease 0.4s;
            -webkit-transition:ease 0.4s;
            transition:ease 0.4s;
            position:relative;}
    
    .button:hover{border:2px solid #fff;
                  background-position:140px center;}
    
    .button .line{position:absolute;
                   background:none; 
                  -moz-transition:ease 0.4s;
                  -o-transition:ease 0.4s;
                  -webkit-transition:ease 0.4s;
                  transition:ease 0.4s;}
    
    .button:hover .line{background:#fff;}
    
    .button .line-top{0px;
                      height:2px;
                      left:-110%;
                      top:-2px;}
    
    .button:hover .line-top{100%;
                            left:-2px;}
    
    
    .button .line-right{2px;
                        height:0px;
                        right:-2px;
                        top:-110%;}
    
    .button:hover .line-right{height:100%;
                              top:-2px;}
    
    
    .button .line-bottom{2px;
                         height:0px;
                         left:-2px;
                         bottom:-110%;}
    
    .button:hover .line-bottom{height:100%;
                               bottom:-2px;}
    
    .button .line-left{0px;
                       height:2px;
                       right:-110%;
                       bottom:-2px;}
    
    .button:hover .line-left{100%;
                             right:-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;
               opacity:0;
               border-radius:3px}
    
    .tip em{font-style:normal;}
    
    .tip span{position:absolute;
              0;
              height:0;
              overflow:hidden;
              border:7px solid transparent;
              border-top-color:#2DCB70;
              left:50%;
              margin-left:-3px;
              bottom:-14px;}
    

     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 l=pos-dis;
            $('.tip').css({'left':l+'px'}).animate({'top':180,'opacity':1},300);
        },function(){
            $('.tip').animate({'top':160,'opacity':0},300);
        })
    })

    以上

     

  • 相关阅读:
    php文件下载方法收藏(附js下载技巧)
    微信自定义菜单类简单开发样例
    支付宝即时到账以及扫码支付相关注意事项
    ob系列函数归纳
    去除博客园底部图片广告的CSS代码
    TortoiseGit自动记住用户名密码的方法
    推荐分享一个牛X的自定义PHP加密解密类
    自动判断PC端、手机端跳往不同的域名JS实现代码
    unity 中 Tilemap的使用 笔记
    unity 判断平台(安卓,iOS还是编辑器)
  • 原文地址:https://www.cnblogs.com/jolee/p/5982480.html
Copyright © 2020-2023  润新知