Webフロントエンド学習ノート——HTML 5とCSS 3のQQ TIMケース


『QQ TIM』ケース
Stellarプラグイン
  • 説明
  • 視差スクロール(Parallax Scrolling)とは、Webページのスクロール中に多層の要素が異なる程度に移動することを指し、視覚的に立体運動効果を形成するWebページ展示技術の主な核心は、将来性と背景が異なる速度で移動し、3 D効果を創出することである.この効果はウェブサイトに良い補充を与えることができます.

  • プロパティ
  • 視差スクロール効果がクールで、個性的な展示の場に適しています.
  • 視差スクロールがゆっくりと展開され、語り、物語を話す場合に適しています.
  • 視差スクロールは迷走しやすく、強いナビゲーション機能が必要である.

  • 原理
  • 従来のウェブページの文字、画像、背景は共に同じ方向に同じ速度でスクロールされているが、視差スクロールはスクロール時にコンテンツと多層の背景が実現されたり、異なる速度、または異なる方向の動きを実現したりする.透明度や大きさのアニメーションを加えて表示を最適化することもできます.background-attachmentプロパティを使用して実現します.

  • 使用手順
  • 参照ファイル
  •     <script src="jquery/jquery.min.js">script>
        <script src="jquery.stellar.min.js">script>
    
  • html構造
  •     <div class="content" id="content1">
            <p>TEXT HEREp>
        div>
        <div class="content" id="content2">
            <p>TEXT HEREp>
        div>
        <div class="content" id="content3" data-stellar-background-ratio="0.5">
            <p>TEXT HEREp>
        div>
        <div class="content" id="content4" data-stellar-background-ratio="0.5">
            <p>TEXT HEREp>
        div>
        <div class="content" id="content5" data-stellar-background-ratio="0.5">
            <p>TEXT HEREp>
        div>
        <div class="content" id="content6" data-stellar-background-ratio="0.5">
            <p>TEXT HEREp>
        div> 
    
  • 基本スタイル
  •     .content {
            background-attachment: fixed;
            height: 400px;
        }
        #content1 {
            background-image: url("..");
        }
        #content2 {
            background-image: url("..");
        }
        #content3 {
            background-image: url("..");
        }
        #content4 {
            background-image: url("..");
        }
        #content5 {
            background-image: url("..");
        }
        #content6 {
            background-image: url("..");
        }
    
  • js初期化
  •     $.stellar({
            horizontalScrolling: false,
            responsive: true
        });
    
  • パラメータ解釈
  • 名前
    説明
    义齿
    このプロファイルは、視差効果の方向を設定するために使用されます.horizontalScroling水平方向、verticalScro垂直方向、ブール値、デフォルトtrue
    responsive
    この構成項目は、loadまたはresize時間トリガ時にページをリフレッシュするかどうかを決定するために使用されます.その値はブール値で、デフォルトはfalseです.
    hideDistantElements
    この構成項目は、視線を移動する要素が非表示かどうかを設定するために使用され、その値はブール値であり、非表示にしたくない場合はfalseに設定されます.
    data-stellar-ratio=“2”
    この要素のページスクロールに対する速度比率を定義します.たとえば、0.5はページスクロールの50%、2はページスクロールの200%です.したがって、数値が大きいほど、ページ要素のスクロール速度が速くなります.
    data-stellar-background-ratio
    このコンフィギュレーション・アイテムは、設定された要素の影響速度を変更するために、単一の要素で使用されます.例えば、値が0.3の場合、背景のスクロール速度が通常のスクロール速度の0.3倍であることを示す.小数点以下の場合はスタイルシートで設定したほうがいいです
    ビジュアルスクロール差ページの開発を完了
  • モジュール1:ナビゲーション(nav)
  • モジュール2:宣伝(banner)
  • モジュール3:音声チャット
  • モジュール4:ファイル転送(file)
  • モジュール5:興味部族(interest)
  • モジュール6:下部(footer)
  • 具体的な需要参照例
  • index.html
  • 
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>QQTIMtitle>
        <link rel="stylesheet" href="css/index.css">
        
    head>
    <body>
    
    <nav class="qq_nav">
        <div class="wrapper">
            <a href="#" class="logo">a>
            <ul class="nav">
                <li><a class="active" href="#">  a>li>
                <li><a href="#">  a>li>
                <li><a href="#">  a>li>
            ul>
            <div class="other">
                <ul>
                    <li><a href="#">qq  a>li>
                    <li><a href="#">qq  a>li>
                    <li><a href="#">  a>li>
                ul>
                <span>      :227,763,015span>
            div>
            <a href="#" class="register">  a>
        div>
    nav>
    
    <section class="qq_banner">
        <img src="images/banner-logo.png" alt="">
        <img src="images/banner-download.png" alt="">
        <img src="images/banner-list.png" alt="">
        <img src="images/banner-product.png" alt="">
    section>
    
    <section class="qq_sound">
        
        <h1>I'm QQ -    ,    h1>
        <div class="bg" data-stellar-background-ratio="0.3">div>
        <div class="content">
            <div class="iphone">div>
            <h2><br>         h2>
            <p>      ,       QQ   <br>p>
        div>
    section>
    
    <section class="qq_file">
        <div class="bg" data-stellar-background-ratio="0.3">div>
        <div class="content">
            <h2><br>    h2>
            <p>  QQ,               ,<br>        ,         。p>
            <div class="mac">div>
        div>
    section>
    
    <section class="qq_interest">
        <div class="bg"  data-stellar-background-ratio="0.3">div>
        <div class="content">
            <div class="phone">div>
            <h2><br>       h2>
            <p>      ,      ,     <br>       ,           。p>
        div>
    section>
    
    <footer class="qq_footer">
        <div class="content">
            <div class="plats">
                <a class="plmb" href="#" target="_blank">QQ    a>
                <a class="plpc" href="#" target="_blank">QQ PC a>
                <a class="plmac" href="#" target="_blank">QQ Mac a>
                <a class="plpad" href="#" target="_blank">QQ Pad a>
            div>
            <p>Copyright © 1998- 2017 Tencent. All Rights Reserved.p>
            <p>         p>
        div>
    footer>
    <script src="js/jquery.min.js">script>
    <script src="js/jquery.stellar.js">script>
    <script src="js/index.js">script>
    body>
    html>
    
  • index.js
  • $(function () {
        /*1.  */
        /*2.     data-stellar-background-ratio="0.3"     bg    background-attachment: fixed;*/
        /*3.     */
        $.stellar({
            horizontalScrolling: false,
            responsive: true
        });
    });
    
  • index.css
  • /*============reset css===========*/
    * {
        margin: 0;
        padding: 0;
    }
    body {
        font-size: 14px;
        font-family: "Microsoft YaHei", sans-serif;
        color: #333;
    }
    ul{
        list-style: none;
    }
    a{
        color: #333;
        text-decoration: none;
    }
    /*============model css===========*/
    .qq_nav{
        height: 150px;
        background: url("../images/nav_bg.png") repeat-x;
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
    }
    .qq_nav .wrapper{
        width: 1080px;
        height: 75px;
        margin: 0 auto;
    }
    .qq_nav .wrapper .logo{
        width: 100px;
        height: 75px;
        background: url("../images/nav_brand.png") no-repeat center;
        float: left;
    }
    .qq_nav .wrapper .nav{
        float: left;
    }
    .qq_nav .wrapper .nav li{
        float: left;
        font-size: 18px;
        line-height: 75px;
        margin-left: 20px;
    }
    .qq_nav .wrapper .nav li a{
        display: block;
        padding: 0 20px;
    }
    .qq_nav .wrapper .nav li a.active,
    .qq_nav .wrapper .nav li a:hover{
        background: #12b7f5;
    }
    
    .qq_nav .wrapper .register{
        float: right;
        height: 36px;
        width: 96px;
        text-align: center;
        line-height: 36px;
        font-size: 16px;
        background: #12b7f5;
        color: #fff;
        border-radius: 18px;
        margin-top:19px;
    }
    .qq_nav .wrapper .other{
        float: right;
        width: 250px;
        height: 75px;
    }
    .qq_nav .wrapper .other ul {
        width: 250px;
    }
    .qq_nav .wrapper .other ul li{
        float: right;
        margin-left:40px;
    }
    .qq_nav .wrapper .other ul li a{
        font-size: 14px;
        text-shadow: 0 0 2px #333;
        height: 50px;
        line-height: 50px;
    }
    .qq_nav .wrapper .other span{
        float: right;
    }
    
    
    
    .qq_banner{
        height: 880px;
        background: url("../images/banner-bg.jpg") no-repeat center top;
        padding-top: 150px;
    }
    
    .qq_banner img{
        display: block;
        margin: 20px auto 0;
    }
    .qq_banner img:last-child{
        width: 100%;
        /*                       */
    }
    
    
    
    
    
    .qq_sound{
    
    }
    .qq_sound h1{
        height: 300px;
        background: url("../images/sound-text.png") no-repeat center/cover;
        font-size: 0;
    }
    .qq_sound .bg{
        height: 500px;
        background: url("../images/sound-bg.jpg") no-repeat center/cover;
    }
    .qq_sound .content{
        height: 500px;
        width: 980px;
        margin: 0 auto;
        position: relative;
    }
    .qq_sound .content .iphone{
        position: absolute;
        left: 0;
        top: -200px;
        width: 700px;
        height: 700px;
        background: url("../images/sound-phone.png") no-repeat center top/cover;
    }
    .qq_sound .content h2{
        float: right;
        padding-top: 100px;
        width: 500px;
        text-align: right;
        font-size: 40px;
    }
    .qq_sound .content p{
        padding-top: 50px;
        float: right;
        width: 500px;
        text-align: right;
        font-size: 18px;
        text-shadow: 0 0 2px #333;
    }
    
    
    
    
    .qq_file{}
    .qq_file .bg{
        height: 500px;
        background: url("../images/file-bg.jpg") no-repeat center/cover;
    }
    .qq_file .content{
        height: 500px;
        width: 980px;
        margin:  0 auto;
        position: relative;
    }
    .qq_file .content .mac{
        width: 600px;
        height: 340px;
        background: url("../images/file-mac.png") no-repeat center/cover;
        position: absolute;
        right: -60px;
        top: 100px;
    }
    .qq_file .content h2{
        float: left;
        padding-top: 100px;
        width: 500px;
        text-align: left;
        font-size: 40px;
    }
    .qq_file .content p{
        padding-top: 50px;
        float: left;
        width: 500px;
        text-align: left;
        font-size: 18px;
        text-shadow: 0 0 2px #333;
    }
    
    
    
    
    
    
    .qq_interest{}
    .qq_interest .bg{
        height: 500px;
        background: url("../images/interest-bg.jpg") no-repeat center/cover;
    }
    .qq_interest .content{
        height: 500px;
        width: 980px;
        margin: 0 auto;
        position: relative;
    }
    .qq_interest .content .phone{
        position: absolute;
        left: 0;
        top: 0;
        width: 350px;
        height: 500px;
        background: url("../images/interest-phone.png") no-repeat center top/cover;
    }
    .qq_interest .content h2{
        float: right;
        padding-top: 100px;
        width: 500px;
        text-align: right;
        font-size: 40px;
    }
    .qq_interest .content p{
        padding-top: 50px;
        float: right;
        width: 500px;
        text-align: right;
        font-size: 18px;
        text-shadow: 0 0 2px #333;
    }
    
    
    
    
    
    .qq_footer{
        height: 250px;
        background: #2a2a2a;
        font-size: 12px;
        text-align: center;
        padding-top: 50px;
        color: #666;
    }
    .plats{
        width: 800px;
        height: 150px;
        margin: 0 auto;
        display: block;
    }
    .plats a {
        float: left;
        background: transparent url(../images/footer.png) no-repeat 10px 0;
        text-align: center;
        font-size: 12px;
        color: #666;
        padding-top: 50px;
        width: 80px;
        margin: 0 60px;
    }
    .plats a:hover {
        color: #12b7f5;
    }
    .plats a.plmb {
        background-position: 0 0;
    }
    .plats a.plmb:hover {
        background-position: 0 -93px;
    }
    .plats a.plpc {
        background-position: -105px 0;
    }
    .plats a.plpc:hover {
        background-position: -105px -93px;
    }
    .plats a.plmac {
        background-position: -210px 0;
    }
    .plats a.plmac:hover {
        background-position: -210px -93px;
    }
    .plats a.plpad {
        background-position: -326px 0;
    }
    .plats a.plpad:hover {
        background-position: -326px -93px;
    }
    
    .qq_sound .bg,.qq_file .bg,.qq_interest .bg{
        background-attachment: fixed;
    }