Membuat Menu Box Transisi Dengan JQuery

Demo : http://longfield-transitionpage.blogspot.com/
source : http://tympanus.net/Tutorials/LittleBoxesMenu/








step 1 : (langsung saja yaa kk :P ) masuk blogger - rancangan - Edit HTML


masukkan kode berikut di atas ]]></b:skin>


*/------------transisi---------------*/
.littleBoxes{

    width:350px;

    height:350px;

    margin:0 auto;

    position:relative;

}

.littleBoxes > div{

    position:absolute;

    width:90px;

    height:90px;

    text-align:center;

    border:2px solid white;

    overflow:hidden;

    background-color:#f7f7f7;

    -moz-box-shadow:0px 0px 3px #555;

    -webkit-box-shadow:0px 0px 3px #555;

    box-shadow:0px 0px 3px #555;

    background-position:center center;

    z-index:999;

}

.littleBoxes div a{

    text-transform:uppercase;

    font-size: 18px;

    font-weight:bold;

    letter-spacing:-1px;

    display:block;

    line-height:90px;

    text-decoration:none;

    color:#fff;

    background:#91EF4A url(../bgItem.png) repeat-x top left;

    outline:none;

    text-shadow:1px 1px 1px #888;

    -moz-box-shadow:1px 1px 3px #777;

    -webkit-box-shadow:1px 1px 3px #777;

    box-shadow:1px 1px 3px #777;

}

.littleBoxes div.boxcontent{

    width:334px;

    height:246px;

    text-align:left;

    padding:10px;

    font-size:16px;

    background-color:#f0f0f0;

    border:2px solid #fff;

    margin:10px 0px 0px 10px;

    text-shadow:1px 1px 1px #fff;

    -moz-box-shadow:1px 1px 3px #777;

    -webkit-box-shadow:1px 1px 3px #777;

    box-shadow:1px 1px 3px #777;

    opacity:0.8;

    display:none;

}

.bg1, .bg2, .bg3, .bg4{

    background-repeat:no-repeat;

}

.bg1{

    background-image:url(../images/1.jpg);   

}

.bg2{

    background-image:url(../images/2.jpg);

}

.bg3{

    background-image:url(../images/3.jpg);

}

.bg4{

    background-image:url(../images/4.jpg);

}

.bg5{

    background-image:url(../images/5.jpg);

}




step 2 : masukkan script berikut di atas </head>


<script type='text/javascript'>


  var _gaq = _gaq || [];
  _gaq.push([&#39;_setAccount&#39;, &#39;UA-7243260-2&#39;]);
  _gaq.push([&#39;_trackPageview&#39;]);


  (function() {
    var ga = document.createElement(&#39;script&#39;); ga.type = &#39;text/javascript&#39;; ga.async = true;
    ga.src = (&#39;https:&#39; == document.location.protocol ? &#39;https://ssl&#39; : &#39;http://www&#39;) + &#39;.google-analytics.com/ga.js&#39;;
    var s = document.getElementsByTagName(&#39;script&#39;)[0]; s.parentNode.insertBefore(ga, s);
  })();


</script>




step 3 : letakkan script berikut di atas </body>


<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'/>
        <script src='http://tympanus.net/Tutorials/LittleBoxesMenu/jquery.easing.1.3.js' type='text/javascript'/>
       <script type='text/javascript'>
            $(function() {
                /* object to save the initial positions of each box */
                var divinfo = {&quot;initial&quot;: []};
                /* index of the selected / clicked box */
                var current = -1;


                /* we save the index,top and left of each one of the boxes */
                $(&#39;#littleBoxes &gt; div&#39;).each(function(){
                    var $this = $(this);
                    var initial = {
                                &#39;index&#39; : $this.index(),
                                &#39;top&#39;     : $this.css(&#39;top&#39;),
                                &#39;left&#39;     : $this.css(&#39;left&#39;)
                    };
                    divinfo.initial.push(initial);
                });


                /* clcik event for the anchors inside of the boxes */
                $(&#39;#littleBoxes a&#39;).bind(&#39;click&#39;,function(e){
                        var $this         = $(this);
                        var $currentBox    = $this.parent();
                        /* set a z-index lower than all the other boxes,
                        to see the other boxes animation on the top*/
                        $currentBox.css(&#39;z-index&#39;,&#39;1&#39;);


                        /* if we are clicking on a expanded box : */
                        if(current == $currentBox.index()){
                            /* put it back (decrease width,height, and set the top and left like it was before).
                            the previous positions are saved in the divinfo obj*/
                            $currentBox.stop().animate({
                                    &#39;top&#39;         : divinfo.initial[$currentBox.index()].top,
                                    &#39;left&#39;        : divinfo.initial[$currentBox.index()].left,
                                    &#39;width&#39;     : &#39;90px&#39;,
                                    &#39;height&#39;    : &#39;90px&#39;
                            },800,&#39;easeOutBack&#39;).find(&#39;.boxcontent&#39;).fadeOut();




                            $(&#39;#littleBoxes &gt; div&#39;).not($currentBox).each(function(){
                                var $ele         = $(this);
                                var elemTop     = divinfo.initial[$ele.index()].top;
                                var elemLeft     = divinfo.initial[$ele.index()].left;
                                $ele.stop().show().animate({
                                    &#39;top&#39;         : elemTop,
                                    &#39;left&#39;        : elemLeft,
                                    &#39;opacity&#39;    : 1
                                },800);
                            });
                            current = -1;
                        }
                        /* if we are clicking on a small box : */
                        else{
                            /* randomly animate all the other boxes.
                            Math.floor(Math.random()*601) - 150 gives a random number between -150 and 450.
                            This range is considering the initial lefts/tops of the elements. It&#39;s not the exact right
                            range, since we would have to calculate the range based on each one of the boxes. Anyway, it
                            fits our needs...
                            */
                            $(&#39;#littleBoxes &gt; div&#39;).not($currentBox).each(function(){
                                var $ele = $(this);
                                $ele.stop().animate({
                                    &#39;top&#39; : (Math.floor(Math.random()*601) - 150) +&#39;px&#39;,
                                    &#39;left&#39;: (Math.floor(Math.random()*601) - 150) +&#39;px&#39;,
                                    &#39;opacity&#39;:0
                                },800,function(){
                                    $(this).hide();
                                });
                            });


                            /* expand the clicked one. Also, fadeIn the content (boxcontent)
                            if you want it to fill the space of the littleBoxes container,
                            then these are the right values */
                            var newwidth     = 379;
                            var newheight     = 379;
                            $currentBox.stop().animate({
                                &#39;top&#39;     : &#39;0px&#39;,
                                &#39;left&#39;    : &#39;0px&#39;,
                                &#39;width&#39; : newwidth +&#39;px&#39;,
                                &#39;height&#39;: newheight+&#39;px&#39;
                            },800,&#39;easeOutBack&#39;,function(){
                                current = $currentBox.index();
                                $(this).find(&#39;.boxcontent&#39;).fadeIn();
                            });




                        }
                        e.preventDefault();
                });
            });
        </script>






step 4 : tinggal melakukan penempatan body dan div ini bisa anda kreasikan sendiri misalkan menu pertama untuk chat menu ke 2 untuk label dan sebagainya kodenya :


<div class="title">
<
h1>Little Boxes Menu with jQuery</h1>
</
div>
<
div id="content">
<
div class="reference">
<p><a href="http://www.flickr.com/photos/adforce1/">Photos from williamcho's photostream on Flickr</a></p>
</
div>

<
a class="back" href="http://tympanus.net/codrops/2010/05/18/little-boxes-menu-with-jquery">Back to Codrops</a>
<
div id="littleBoxes" class="littleBoxes">
<
div class="boxlink bg1" style="top:0px;left:0px;">
<
a href="">About</a>
<
div class="boxcontent">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, 
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
</
p>
</
div>
</
div>
<
div class="bg5" style="background-position:-90px 0;top:0px;left:95px;"></div>
<
div class="bg5" style="background-position:-180px 0;top:0px;left:190px;"></div>
<
div class="bg5" style="background-position:-270px 0;top:0px;left:285px;"></div>

<
div class="bg5" style="background-position:0 -90px;top:95px;left:0px;"></div>
<
div class="boxlink bg2" style="top:95px;left:95px;">
<a href="">Menu</a>
<
div class="boxcontent">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
</
p>
</
div>
</
div>
<
div class="bg5" style="background-position:-180px -90px;top:95px;left:190px;"></div>
<
div class="bg5" style="background-position:-270px -90px;top:95px;left:285px;"></div>

<div class="bg5" style="background-position:0 -180px;top:190px;left:0px;"></div>
<
div class="bg5" style="background-position:-90px -180px;top:190px;left:95px;"></div>
<
div class="boxlink bg3" style="top:190px;left:190px;">
<
a href="">Chef</a>
<
div class="boxcontent">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
</
p>
</
div>
</
div>
<div class="bg5" style="background-position:-270px -180px;top:190px;left:285px;"></div>

<
div class="bg5" style="background-position:0 -270px;top:285px;left:0px;"></div>
<
div class="bg5" style="background-position:-90px -270px;top:285px;left:95px;"></div>
<
div class="bg5" style="background-position:-180px -270px;top:285px;left:190px;"></div>
<
div class="boxlink bg4" style="top:285px;left:285px;">
<
a href="">Contact</a>
<
div class="boxcontent">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
</
p>
</div>
</
div>
</
div>
</
div>




save template anda dan liat hasilnya seperti demo. dan warna hijau bisa anda isi dengan HTML atau Script lainnya,, sedang warna kuning bisa anda modif sesuai keinginan anda misalkan posistion dan width serta tingginya bla bla bla. . ..


selamat mencoba!!!

0 komentar:

Post a Comment