HTML与css和js综合练习

HTML+JS+CSS综合练习


给大家带来一波干货!!

希望对大家有用

一、 滑动样式

login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
    <link rel="stylesheet" href="default.css">
</head>
<body>
<div class="page">

    <div class="panel">
        <div class="panel_visible">
            <!--注册表单-->
            <div class="panel_content">
                <h1 class="panel_title">  Sign Up </h1>
                <form class="form">
                    <label class="form_label" for="username">Username</label>
                    <input class="form_input" type="text" id="username" name="username">
                    <label class="form_label" for="password">Password</label>
                    <input class="form_input " type="password" id="password" name="password">
                    <label class="form_label" for="truename">True Name</label>
                    <input class="form_input" type="text" id="truename" name="fullname">
                    <button class="form_btn" type="button" value="Submit">Submit</button>
                    <button class="form_toggle js-formToggle" type="button">Or, Sign In</button>
                </form>
            </div>
            <!--登录表单-->
            <div class="panel_content panel_content-overlay js-panel_content ">
                <h1 class="panel_title">  Sign In </h1>
                <form class="form">
                    <label class="form_label" for="usernameIn">Username</label>
                    <input class="form_input" type="text" id="usernameIn" name="usernameIn">
                    <label class="form_label" for="passwordIn">Password</label>
                    <input class="form_input " type="password" id="passwordIn" name="passwordIn">
                    <button class="form_btn" type="button" value="Submit">Sign In</button>
                    <br>
                    <button class="form_toggle js-formToggle" type="button">Or, Sign Up</button>
                </form>
            </div>
        </div>
        <div class="panel_back js-imageAnimate">
            <img class="panel_img" src="login.jpg" style="width: 235px;height: 457px"  />
        </div>
    </div>

</div>
<script src="main.js"></script>
</body>
</html>

main.js:

var toggleBtns = document.querySelectorAll('.js-formToggle');
for(var i = 0; i < toggleBtns.length; i++){
    toggleBtns[i].addEventListener("click",toggleForm);
}


var firstClick = true;

function toggleForm(){

    if(!firstClick){
        document.querySelector('.js-imageAnimate').classList.toggle("animate");
        document.querySelector('.js-imageAnimate').classList.toggle("animateOut");


        document.querySelector('.js-panel_content').classList.toggle("animate");
        document.querySelector('.js-panel_content').classList.toggle("animateOut");
    }
    else{
        firstClick = false;
        document.querySelector('.js-imageAnimate').classList.add("animate");
        document.querySelector('.js-panel_content').classList.add("animate");

    }
}

default.css:

body, html{
    font-family: Ariel, sans-serif;
    width:100%;
    height:100%;
    margin:0;
    padding:0;
    display:inline-block;
}
.page{
    display:flex;
    flex-flow:row;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    background-color: #0f95b0;
}
.panel{

    display:inline-block;
    position:relative;
}

.panel_visible{
    position:relative;

    overflow: hidden;
}
.panel_title{
    margin-top: .5em;
    margin-bottom: 1.2em;
}



.panel_content{
    padding: 20px;
    background-color: white;
    z-index:10;
    position:relative;
}
.panel_content-overlay{
    position:absolute;
    top:0;
    left:100%;
    height:100%;
}

.panel_content.animate{

    animation: movePanel 2s forwards ;
}

@keyframes movePanel{

    0%, 30%{
        transform: translateX(0%);

    }
    35%, 100%{
        transform: translateX(-100%);

    }

}
.panel_content.animateOut{

    animation: movePanelOut 2s forwards ;
}
@keyframes movePanelOut{
    0%, 30%{
        transform: translateX(-100%);

    }
    35%, 100%{
        transform: translateX(0%);

    }
}
.panel_back{
    position:absolute;
    z-index:0;
    top:50%;
    left: 0;
    width:110%;
    transform: translate(70%,-50%);
}

.panel_back.animate{

    animation: move 2s forwards ;
}

@keyframes move{
0%{
    transform: translate(70%,-50%);
    z-index:0;
}
15%{
    transform: translate(140%,-50%);
    z-index:10;
}
75%{
    transform: translate(-120%,-50%);
    z-index:10;
}
100%{
    transform: translate(-50%,-50%);
    z-index:0;
}
}
.panel_back.animateOut{
    transform: translate(-50%,-50%);
    animation: moveOut 2s forwards ;
}
@keyframes moveOut{
0%{
    transform: translate(-50%,-50%);
    z-index:0;
}
15%{
    transform: translate(-120%,-50%);
    z-index:10;
}
75%{
    transform: translate(140%,-50%);
    z-index:10;
}
100%{
    transform: translate(70%,-50%);
    z-index:0;
}



}
.panel_img{
    width:100%;
    display:block;
}

/* Form */
.form{
    box-sizing:border-box;
}
.form_label{
    display:block;
    color: #3D3D3D;
    font-weight: 600;
    margin-bottom: 5px;
}
.form_input{
    border-radius: 3px;
    background-color: #f2f2f2 ;
    box-shadow: 0px 2px 2px #D6D6D6;
    border:none;
    padding: 2%;
    margin-bottom: 15px;
    width: 250px;
    box-sizing:border-box;
    position:relative;
}
.form_input:focus{
    box-shadow: none;
    outline-color: #0f95b0;
}

.form_input::after{
    /*   TODO: make this after portion work */
    content: "
上一篇:Exchange 2016 限制邮件大小


下一篇:boost::geometry::range_by_section用法的测试程序