zoukankan      html  css  js  c++  java
  • 使用gravatar创建自己的动态照片登录框

    gravatar全球最大的个性图像库。他的应用已经在成千百万的网站使用。现在最常用的是gravatar显示自己的评论头像,但是今天,我奇思妙想,使用gravatar创建自己的登录头像,每次登录的时候输入email地址,如果正确就显示自己的动态头像,这个效果是不是很棒,这样网站的吸引量也会大大增加

    我将编写一个简单的用户登录框e-mail/password。当用户输入正确的email地址之后,系统将该帐户关联的任何显示通过Ajax的请求显示gravatar图像效果。为了验证头像,使用md5.php文件,。如果你是初学者,我下面的php代码写的地方都标有注释,你可很容易理解

    1创建HTML

    用户头像图片顶部的div的形式本身被分成水平段。默认情况下,就是你进入这个页面还没有输入email的时候,将显示通用Gravatar图标,当你输入一个合法的 Email地址之后,图标会换成你自己的

     1 <div id="container">
     2     <form id="login" name="login" autocomplete="off" method="POST" action="index.html">
     3         <div id="avatar-box">
     4             <img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?s=120" alt="Gravatar" id="userimg">
     5         </div>
     6             
     7         <div class="input-field">
     8             <label for="email">e-mail</label>
     9             <input type="email" name="email" id="email" class="basic">
    10         </div>
    11     
    12         <div class="input-field">
    13             <label for="password">password</label>
    14             <input type="password" name="password" id="password" class="basic">
    15         </div>
    16             
    17         <input type="submit" id="formsub" value="Login!">
    18     </form>
    19 </div>

    我将针对E-mail输入字段ID属性,通过jquery检查是否合法性。显示的样式在css表中定义

    布局格式

    在样式表文件,使用重复的背景图像平铺

     1 form input.basic { 
     2  320px; 
     3 outline: none;
     4 margin-bottom: 10px; 
     5 border: 1px solid #d2dadd;
     6 -moz-box-shadow: 0px 1px 1px #f3f4f6 inset;
     7 -webkit-box-shadow: 0px 1px 1px #f3f4f6 inset;
     8 box-shadow: 0px 1px 1px #f3f4f6 inset;
     9 font-size: 13px;
    10 color: #3a3a3a;
    11 padding: 8px 7px;
    12 -moz-border-radius: 3px;
    13 -webkit-border-radius: 3px;
    14 border-radius: 3px 3px 3px 3px;
    15 outline-color: #e2eaed;
    16 background: #f8f8f8; 
    17 }

    下面两个表单域,我还使用了一套CSS的梯度设计的按钮。悬停和积极的事件触发扭转。文字阴影

     1 #formsub { 
     2 position: relative;
     3 left: 330px;
     4 padding: 9px 22px;
     5 font-size: 1.4em;
     6 cursor: pointer;
     7 border: 1px solid #dedede;
     8 -webkit-border-radius: 3px;
     9 -moz-border-radius: 3px;
    10 border-radius: 3px 3px 3px 3px;
    11 color: #3d5086;
    12 background: #829bf7;
    13 background: -moz-linear-gradient(top, #829bf7 0%, #5f84da 100%);
    14 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#829bf7), color-stop(100%,#5f84da));
    15 background: -webkit-linear-gradient(top, #829bf7 0%,#5f84da 100%);
    16 background: -o-linear-gradient(top, #829bf7 0%,#5f84da 100%);
    17 background: -ms-linear-gradient(top, #829bf7 0%,#5f84da 100%);
    18 background: linear-gradient(top, #829bf7 0%,#5f84da 100%);
    19 border-color: #6f8cdf #5f82da #5066d5;
    20 text-shadow: 0 1px 0 #9caff8;
    21 -webkit-box-shadow: 0 1px 1px #c1c1c1, inset 0 1px 0 #a1baf9;
    22 -moz-box-shadow: 0 1px 1px #c1c1c1, inset 0 1px 0 #a1baf9;
    23 box-shadow: 0 1px 1px #c1c1c1, inset 0 1px 0 #a1baf9;
    24 }
    25 #formsub:hover {
    26 background: #5f84da;
    27 background: -moz-linear-gradient(top, #5f84da 0%, #829bf7 100%);
    28 background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#5f84da), color-stop(100%,#829bf7));
    29 background: -webkit-linear-gradient(top, #5f84da 0%,#829bf7 100%);
    30 background: -o-linear-gradient(top, #5f84da 0%,#829bf7 100%);
    31 background: -ms-linear-gradient(top, #5f84da 0%,#829bf7 100%);
    32 background: linear-gradient(top, #5f84da 0%,#829bf7 100%);
    33 border-color: #6083c3 #567ac2 #4e71c1;
    34 text-shadow: 0 1px 0 #9caff8;
    35 color: #2e4073;
    36 -webkit-box-shadow: 0 1px 1px #c3c3c3, inset 0 1px 0 #a1baf9;
    37 -moz-box-shadow: 0 1px 1px #c3c3c3, inset 0 1px 0 #a1baf9;
    38 box-shadow: 0 1px 1px #c3c3c3, inset 0 1px 0 #a1baf9; 
    39 }
    40 #formsub:active {
    41 background: #5f84da;
    42 -webkit-box-shadow: 0 1px 1px #fff, inset 0 1px 0 #a1baf9;
    43 -moz-box-shadow: 0 1px 1px #fff, inset 0 1px 0 #a1baf9;
    44 box-shadow: 0 1px 1px #fff, inset 0 1px 0 #a1baf9;  
    45 }

    上面的许多这些属性可以更新或更换,以适应自己的网站。配色方案和设计风格

    关于email验证

    在email字段,每当你输入email地址的时候,会使用正则匹配进行验证

    1 $(document).ready(function(){
    2     
    3     $("#email").keyup(function(){
    4         var addr  = $(this).val();
    5         var regex = /(.+)@(.+){2,}\.(.+){2,}/;

     如果输入错误就是提示你输入正确的电子邮件

     

    DOM加载完成,我们需要检查仅在KeyUp事件中的电子邮件输入。但此事件处理程序之前,我已经编写了一个正则表达式的变量,我将测试对用户的输入值。keyup事件之后,我们可以设置另一个变量保存当前文本内#电子邮件

    只是一个简单的URL黑客的gravatar可以显示图像,通过创建一个e-mail地址的MD5哈希。这将打开模样的东西http://www.gravatar.com/avatar/MD5HASH如果你需要的图像传回值,你可能会追加.JPG文件扩展名。但在这个例子中,我设置一个特定的大小值,所以我们得到120×120图像。

    调用一个Ajax请求

    我们需要一些逻辑来检查,每次用户进入一个地址,如果他们当前的电子邮件是有效的。如果是的话,那么,我们需要传递到PHP的数据,所以我们可以得到一个MD5哈希,从而显示了一个新的gravatar形象。这里是我的jQuery代码的其余部分

     1 if(regex.test(addr)) {
     2             $.ajax({
     3                 type: "POST",
     4                 url: "md5.php",
     5                 data: "email="+addr,
     6                 success: function(html){
     7                     var newimg = "http://www.gravatar.com/avatar/"+html+"?s=120";
     8                     $("#userimg").attr("src", newimg)
     9                 }
    10             });
    11         }
    12     });
    13 });

    请记住,正则表达式是指我设置的变量。这包含了一系列复杂的代码语法来确定,此功能将只返回true如果e-mail地址正确匹配。如果为true,然后调用到一个脚本连接md5.php的一个新的Ajax方法。我们通过一个新的变量,其中包含当前用户输入的e-mail文本。然后返回函数内部,追加到新的MD5哈希的gravatar网址,并动态更新顶端的gravatar图像的src属性。

    md5.PHP

    上面的前端代码已经写完。看看后台程序是如何处理的,md5.PHP做的是获取用户的e-mail,创建一个MD5哈希字符串,返回值返回到jQuery。代码如下

    1 <?php
    2 $email = trim(strtolower($_POST['email']));
    3 
    4 $md5 = md5($email);
    5 echo $md5;
    6 ?>

    如下图我输入emaili地址之后,显示你的gravatar账户图像

    这是这样一个新的应用,你可以用在任何网站上面,,每次你登录,都会显示很酷的效果的gravatar图像动态。

     

  • 相关阅读:
    Activiti服务类-4 HistoryService服务类
    Activiti服务类-3 FormService服务类
    知识碎片
    web 框架
    pymysql 模块
    Bootstrap-按钮
    Bootstrap-下拉菜单
    前端之jQuery03 插件
    Python打印进度条
    JavaScript碎片
  • 原文地址:https://www.cnblogs.com/58top/p/2606023.html
Copyright © 2011-2022 走看看