1

私はウェブサイト用にこのナビゲーションを作成しようとしていますが、今はうまくいっているようですが、正しいアニメーションを取得できません。アニメートを使用しようとしましたが、動作させることができず、それが最善の方法であるかどうかもわかりません。

標準の .show / .hide のように上隅から縮小するのではなく、メニューが住んでいる側からスライドインするようにします。

HTML

<div class="wrapper">
    <div class="nav">
        <a href="#" class="nav-show">menu</a>
        <a href="#" class="search-show">search</a>

        <div class="nav-wrap">
            <ul>
                <li><a herf="#">1</a></li>
                <li><a herf="#">2</a></li>
                <li><a herf="#">3</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
            </ul>
        </div>

        <div class="search-wrap">
            <ul>
                <li><a herf="#">1</a></li>
                <li><a herf="#">2</a></li>
                <li><a herf="#">3</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
                <li><a herf="#">4</a></li>
            </ul>
        </div>
    </div>
</div>

CSS

body {background-color:#567;}
* {margin:0; padding:0;}
ul, li {margin:0; padding:0;}

.wrapper {width:100%; height:60px; background-color:#333;}
.nav {width:100%; height:60px;}
.nav-show {width:60px; background-color:#666; color:#FFF; display:inline-block; height:100%; line-height:60px; text-align:center;}
.search-show {width:60px; background-color:#666; color:#FFF; display:inline-block; height:100%; line-height:60px; text-align:center; float:right;}

.nav-wrap {width:90%; background-color:#999; color:#000;padding:10px; display:none; position:fixed; top:60px; left:0; bottom:0; overflow:auto;}
.nav-wrap ul {list-style:none; background-color:#F60;}
.nav-wrap ul li {height:60px; width:100%; background-color:#CCC;margin-bottom:5px;}

.search-wrap {width:90%; background-color:#999; color:#000;padding:10px; display:none; position:fixed; top:60px; right:0; bottom:0; overflow:auto;}
.search-wrap ul {list-style:none; background-color:#F60;}
.search-wrap ul li {height:60px; width:100%; background-color:#CCC;margin-bottom:5px;}

Jクエリ

$(document).ready(
    function(){
        $(".nav-show").click(function () {
            $(".search-wrap").hide("slow");
            $(".nav-wrap").toggle("slow");
        });

        $(".search-show").click(function () {
            $(".nav-wrap").hide("slow");
            $(".search-wrap").toggle("slow");
        });
    });

フィドルも作りました

私は自分のjqueryコードが最高ではないことを知っています.私はむしろ新人です. アニメーションには CSS3 を使用したほうがよいのでしょうか。

4

2 に答える 2

0

イージングプラグインを試してみてください。

フィドル

$(document).ready(
    function(){
        $(".nav-show").click(function () {
            $(".search-wrap").hide("slow");
            $(".nav-wrap").toggle('slide', {direction: 'left'}, 1000, "easeOutExpo");
        });

        $(".search-show").click(function () {
            $(".nav-wrap").hide("slow");
            $(".search-wrap").toggle('slide', {direction: 'right'}, 1000, "easeOutExpo");
        });
    });
于 2013-08-08T15:08:08.860 に答える