1. 程式人生 > >彈出式登入介面

彈出式登入介面

要實現這個功能的大致思路是:

1.首先要在頁面上設定一個登入按鈕,可以是<button><a><img>都行,我們點選這個元素的時候會彈出登入框:


2.其次在頁面合適位置製作兩個<div>,一個登入功能的div,另一個註冊功能的div,注意位置的設定,當網站首次載入進入的時候登入框不可見,那就要把樣式設定為display:"none"

3.當用戶點選登入按鈕的時候,通過JS設定登入div的display="",如何使用者點選了登入介面上的註冊按鈕時,通過jQuery切換div透明和大小就可以完美實現登入註冊的切換


4.關閉登入框的話也是同樣的道理,把兩個div的display設定為none就行
程式碼如下:

sign.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>sign</title>
    <style>
        body {
            text-align: center;
            background-color: burlywood;
        }
        .signform {
            font-family: 微軟雅黑;
            position: fixed;
            background-color: white;
            top: 20%;
            left: 30%;
            width: 500px;
            height: 400px;
            border-radius: 1em;
            text-align: center;
            z-index: 999;
        }
        #registerform {
            height: 450px;
        }
        .signclose {
            cursor: pointer;
            float: right;
            overflow: hidden;
            text-align: center;
            position: relative;
            height: 35px;
            width: 35px;
            margin-top: 10px;
            margin-right: 10px;
        }
        #registerloading{
            position: absolute;
            width: 25px;
            height: 25px;
            left: 410px;
            top: 90px;
        }
        .signinput {
            text-align: center;
            border-radius: 0.2em;
            width: 280px;
            height: 45px;
            border: none;
            background-color:#f2f2f2;
            font-size: 28px;
        }
        .signinput::-webkit-input-placeholder {
            font-size: 26px;
        }
        .userdiv {
            position: relative;
            margin-top: 80px;
        }
        .pwddiv {
            position: relative;
            margin-top: 20px;
        }
        .postdiv {
            position: relative;
            margin-top: 20px;
        }
        .postdiv button {
            cursor: pointer;
            color: white;
            font-size: 26px;
            border: none;
            border-radius: 0.4em;
            width: 280px;
            height: 45px;
            background-color:#4CAF50;
        }
    </style>
    <link rel="stylesheet" href="./sign.css">
</head>
<body>
<div>
    <button id="displaysign" onclick="start()">點選登入</button>
</div>
<div class="signform" id="signform" style="display: none">
    <div class="signclose">
        <img src="image/signclose.ico" width="35px" height="35px" onclick="signclose()">
    </div>
    <div class="userdiv">
    <input id="user" class="signinput" type="text" placeholder="使用者名稱" name="user" >
    </div>
    <div class="pwddiv">
    <input id="pwd" class="signinput" type="password" placeholder="密碼" name="pwd">
    </div>
    <div class="postdiv">
    <button>登入</button>
    </div>
    <br>
    <div class="change" style="color: #4d4d4d">
        <p>還沒有賬號?趕快<a href="#" style="text-decoration: none;color: #43A047">註冊</a>一個吧</p>
    </div>
</div>
<div class="signform" id="registerform" style="display: none">
        <div class="signclose">
            <img src="image/signclose.ico" width="35px" height="35px" onclick="signclose()">
        </div>
        <div class="userdiv">
            <input  id="registeruser" class="signinput" onblur="loading()" type="text" placeholder="使用者名稱" name="user">
        </div>
    <img src="image/signloading.gif" style="display: none" id="registerloading">
        <div class="pwddiv">
            <input  id="registerpwd" class="signinput" type="password" placeholder="密碼" name="pwd">
        </div>
        <div class="pwddiv">
            <input  id="registerrepwd" class="signinput" type="password" placeholder="再次輸入密碼" name="pwd">
        </div>
        <div class="postdiv">
            <button>註冊</button>
        </div>
        <br>
        <div class="change" style="color: #4d4d4d">
            <p>已有賬號?立刻去<a href="#" style="text-decoration: none;color: #43A047">登入</a>吧</p>
        </div>
</div>
</body>
<script src="./jquery-3.2.1.min.js"></script>
<script src="./signformchange.js"></script>
</html>

sign.css

/*
* @Author: xshis
* @Date:   2018-05-23 11:45:25
* @Last Modified by:   xshis
* @Last Modified time: 2018-05-23 11:45:28
*/
body {
    text-align: center;
    background-color: burlywood;
}
#displaysign{
    position: relative;
    top: 80px;
    width: 70px;
    height: 40px;
}
.signform {
    font-family: 微軟雅黑;
    position: fixed;
    background-color: white;
    top: 20%;
    left: 30%;
    width: 500px;
    height: 400px;
    border-radius: 1em;
    text-align: center;
    z-index: 999;
}
#registerform {
    height: 450px;
}
.signclose {
    cursor: pointer;
    float: right;
    overflow: hidden;
    text-align: center;
    position: relative;
    height: 35px;
    width: 35px;
    margin-top: 10px;
    margin-right: 10px;
}
#registerloading{
    position: absolute;
    width: 25px;
    height: 25px;
    left: 410px;
    top: 90px;
}
.signinput {
    text-align: center;
    border-radius: 0.2em;
    width: 280px;
    height: 45px;
    border: none;
    background-color:#f2f2f2;
    font-size: 28px;
}
.signinput::-webkit-input-placeholder {
    font-size: 26px;
}
.userdiv {
    position: relative;
    margin-top: 80px;
}
.pwddiv {
    position: relative;
    margin-top: 20px;
}
.postdiv {
    position: relative;
    margin-top: 20px;
}
.postdiv button {
    cursor: pointer;
    color: white;
    font-size: 26px;
    border: none;
    border-radius: 0.4em;
    width: 280px;
    height: 45px;
    background-color:#4CAF50;
}

signformchange.js

/*
* @Author: xshis
* @Date:   2018-05-23 11:45:50
* @Last Modified by:   xshis
* @Last Modified time: 2018-05-23 11:45:52
*/
$(function ()
{
        $('.change a').click(function ()
        {
            $('.signform').animate({height: 'toggle', opacity: 'toggle'}, 'slow');
        });
})

function start() {
document.getElementById('signform').style.display=""
}

function signclose() {
    document.getElementById('signform').style.display="none"
    document.getElementById('registerform').style.display="none"
}
function loading() {
    document.getElementById('registerloading').style.display=""
}

需要自己引入juqery庫,就可以跑起來了

本文轉載至:https://www.cnblogs.com/liujianhuaIT/p/6256261.html