Horizontal Roll Menu - BLOGATTANAHI
Headlines News :
Home » » Horizontal Roll Menu

Horizontal Roll Menu

Written By Langlang Buana on Rabu, 23 Juni 2010 | 20.23

Roll Menu ini merupakan menu yang tersembunyi di atas navbar. Saat cursor berada di sekitar navbar, maka menu akan muncul dari atas bagian navbar.

Untuk menciptakan roll menu di butuhkan gabungan KODE CSS dan javaswcript dan Elemen HTML yang berisikan daftar menu yang akan ditampilkan.
Cara pembuatan Roll Menu

Letakkan CSS dan Javascript di antara <head> dan </head>
Letakkan Elemen HTML di bagian body di antara <body> dan </body> 

KODE CSS
#menu_holder {
background: url(http://www.boonex.ru/demos/2/bg4.jpg) repeat-x ;
height: 58px;
width: 87%;
display: block;
position: absolute;
top: -58px;
left:75px;
}
#nav {
height: 58px;
width:885px;
margin: 0px auto;
padding: 0px;
background-image: url(http://2210media.com/dock_menu/right.png);
background-repeat: no-repeat;
background-position: right;
}
#hit_area2 {
width: 100%;
top: 120px;
}
#hit_area {
height: 120px;
width: 100%;
}#nav ul {
margin: 0px;
padding: 0px 0px 0px 21px;
height: 58px;
list-style-type: none;
background-image: url(http://2210media.com/dock_menu/left.png);
background-repeat: no-repeat;
}
#nav li{
margin: 0px; background:url(http://i49.tinypic.com/1079ef7.gif);
padding: 0px;
float: left;
}
#nav li a:link, #nav li a:active, #nav li a:visited {
background-image: url(http://2210media.com/dock_menu/middle.png);
background-repeat: repeat-x;
height: 58px;
width: auto; padding:0 5px ;
display: block;
line-height: 58px;
font-weight: bold;
color: #3300CC;
text-decoration: none;
font-family: Arial, Helvetica, sans-serif;
text-align: center;
font-size: 105%;
}
#nav li a:focus, #nav li a:hover{
text-decoration : none;
-moz-outline:0;
color: #FF0000;
background-image: url(http://snook.ca/technical/jquery-bg/bg2.jpg);
}

Javascript

<script type="text/javascript">
var down = false;function toggleDown() {if(down==false){down=true;t1 = new Tween(document.getElementById('menu_holder').style, 'top', Tween.strongEaseOut, -58, 0, .6, 'px');t1.start();}}
function toggleUp() {if(down==true){down=false;
t1 = new Tween(document.getElementById('menu_holder').style, 'top', Tween.strongEaseIn, 0, -58, .4, 'px');t1.start();}}function Delegate() {}Delegate.create = function (o, f) {var a = new Array() ;
var l = arguments.length ;for(var i = 2 ; i < l ; i++) a[i - 2] = arguments[i] ;return function() {
var aP = [].concat(arguments, a) ;f.apply(o, aP);}}
Tween = function(obj, prop, func, begin, finish, duration, suffixe){
this.init(obj, prop, func, begin, finish, duration, suffixe)}
var t = Tween.prototype;
t.obj = new Object();t.prop='';t.func = function (t, b, c, d) { return c*t/d + b; };t.begin = 0;
t.change = 0;t.prevTime = 0;t.prevPos = 0;t.looping = false;t._duration = 0;t._time = 0;t._pos = 0;
t._position = 0;t._startTime = 0;t._finish = 0;t.name = '';t.suffixe = '';t._listeners = new Array();
t.setTime = function(t){
this.prevTime = this._time;if (t > this.getDuration()) {if (this.looping) {
this.rewind (t - this._duration);this.update();
this.broadcastMessage('onMotionLooped',{target:this,type:'onMotionLooped'});} else {
this._time = this._duration;this.update();this.stop();
this.broadcastMessage('onMotionFinished',{target:this,type:'onMotionFinished'});}} else if (t < 0) {
this.rewind();this.update();} else {this._time = t;this.update();}}
t.getTime = function(){ return this._time;}
t.setDuration = function(d){this._duration = (d == null || d <= 0) ? 100000 : d;}
t.getDuration = function(){return this._duration;}
t.setPosition = function(p){this.prevPos = this._pos;var a = this.suffixe != '' ? this.suffixe : '';
this.obj[this.prop] = Math.round(p) + a;this._pos = p;
this.broadcastMessage('onMotionChanged',{target:this,type:'onMotionChanged'});}
t.getPosition = function(t){if (t == undefined) t = this._time;
return this.func(t, this.begin, this.change, this._duration);};
t.setFinish = function(f){this.change = f - this.begin;};
t.geFinish = function(){return this.begin + this.change;};
t.init = function(obj, prop, func, begin, finish, duration, suffixe){if (!arguments.length) return;
this._listeners = new Array();this.addListener(this); if(suffixe) this.suffixe = suffixe;
this.obj = obj; this.prop = prop; this.begin = begin; this._pos = begin; this.setDuration(duration);
if (func!=null && func!='') { this.func = func;}this.setFinish(finish);}
t.start = function(){this.rewind();this.startEnterFrame();
this.broadcastMessage('onMotionStarted',{target:this,type:'onMotionStarted'});/*alert('in');*/}
t.rewind=function(t){this.stop();this._time=(t == undefined) ? 0 : t;this.fixTime();this.update();}
t.fforward = function(){this._time = this._duration;this.fixTime();this.update();}
t.update = function(){this.setPosition(this.getPosition(this._time));}
t.startEnterFrame = function(){this.stopEnterFrame();this.isPlaying = true;this.onEnterFrame();}
t.onEnterFrame = function(){if(this.isPlaying) {this.nextFrame();
setTimeout(Delegate.create(this, this.onEnterFrame), 0);}}
t.nextFrame = function(){this.setTime((this.getTimer() - this._startTime) / 1000);}
t.stop = function(){this.stopEnterFrame();
this.broadcastMessage('onMotionStopped',{target:this,type:'onMotionStopped'});}
t.stopEnterFrame = function(){this.isPlaying = false;}
t.continueTo = function(finish, duration){this.begin = this._pos;this.setFinish(finish);
if (this._duration != undefined)this.setDuration(duration);this.start();}
t.resume = function(){this.fixTime();this.startEnterFrame();
this.broadcastMessage('onMotionResumed',{target:this,type:'onMotionResumed'});}
t.yoyo = function (){this.continueTo(this.begin,this._time);}
t.addListener = function(o){this.removeListener (o);return this._listeners.push(o);}
t.removeListener = function(o){ var a = this._listeners; var i = a.length; while (i--) {
if (a[i] == o) { a.splice (i, 1); return true;}} return false;}
t.broadcastMessage = function(){ var arr = new Array(); for(var i = 0; i < arguments.length; i++){
arr.push(arguments[i])} var e = arr.shift(); var a = this._listeners; var l = a.length;
for (var i=0; i<l; i++){ if(a[i][e]) a[i][e].apply(a[i], arr);
}}
t.fixTime = function(){ this._startTime = this.getTimer() - this._time * 1000;}
t.getTimer = function(){return new Date().getTime() - this._time;
}
Tween.backEaseIn = function(t,b,c,d,a,p){if (s == undefined) var s = 1.70158;
return c*(t/=d)*t*((s+1)*t - s) + b;}
Tween.backEaseOut = function(t,b,c,d,a,p){
if (s == undefined) var s = 1.70158; return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;}
Tween.backEaseInOut = function(t,b,c,d,a,p){
if (s == undefined) var s = 1.70158;
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;}
Tween.elasticEaseIn = function(t,b,c,d,a,p){
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; if (!a || a < Math.abs(c)) {
a=c; var s=p/4;} else var s = p/(2*Math.PI) * Math.asin (c/a);
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;}
Tween.elasticEaseOut = function (t,b,c,d,a,p){
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (!a || a < Math.abs(c)) { a=c; var s=p/4; } else var s = p/(2*Math.PI) * Math.asin (c/a);
return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b);}
Tween.elasticEaseInOut = function (t,b,c,d,a,p){
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) var p=d*(.3*1.5);
if (!a || a < Math.abs(c)) {var a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;}
Tween.bounceEaseOut = function(t,b,c,d){
if ((t/=d) < (1/2.75)) { return c*(7.5625*t*t) + b; } else if (t < (2/2.75)) {
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
} else if (t < (2.5/2.75)) {return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
} else {return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;}}
Tween.bounceEaseIn = function(t,b,c,d){return c - Tween.bounceEaseOut (d-t, 0, c, d) + b;}
Tween.bounceEaseInOut = function(t,b,c,d){
if (t < d/2) return Tween.bounceEaseIn (t*2, 0, c, d) * .5 + b;
else return Tween.bounceEaseOut (t*2-d, 0, c, d) * .5 + c*.5 + b;}
Tween.strongEaseInOut = function(t,b,c,d){return c*(t/=d)*t*t*t*t + b;}
Tween.regularEaseIn = function(t,b,c,d){return c*(t/=d)*t + b;}
Tween.regularEaseOut = function(t,b,c,d){return -c *(t/=d)*(t-2) + b;}
Tween.regularEaseInOut = function(t,b,c,d){
if ((t/=d/2) < 1) return c/2*t*t + b;return -c/2 * ((--t)*(t-2) - 1) + b;}
Tween.strongEaseIn = function(t,b,c,d){return c*(t/=d)*t*t*t*t + b;}
Tween.strongEaseOut = function(t,b,c,d){return c*((t=t/d-1)*t*t*t*t + 1) + b;}
Tween.strongEaseInOut = function(t,b,c,d){
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;return c/2*((t-=2)*t*t*t*t + 2) + b;}
</script>

Letakan Kode Berikut antara <body> dan </body>
Contoh HTML untuk menu :
<div id="hit_area" onmouseover="toggleDown();"></div>

<div id="menu_holder">
<div id="nav">
<ul>

<li><a href="http://gubhugreyot.blogspot.com">Tutorial Blogger |</a></li>
<li><a href="http://gubhugreyot.blogspot.com">Tips-Trik Blogger |</a></li>
<li><a href="http://gubhugreyot.blogspot.com">Javacsript |</a></li>
<li><a href="http://gubhugreyot.blogspot.com">CSS |</a></li>
<li><a href="http://gubhugreyot.blogspot.com">Horizontal-Menu |</a></li>
<li><a href="http://gubhugreyot.blogspot.com">Vertical-Menu |</a></li>
<li><a href="http://gubhugreyot.blogspot.com">Image Gallery</a></li>
</ul>
</div>
</div>
<div id="hit_area2" onmouseover="toggleUp();">.</div>
</div>


Catatan :
Supaya lebih ringkas, javascript di upload di file hosting sehingga yang digunakan adalah link javascript tersebut. Bentuknya menjadi <script type="text/javascript" src="URL javascript"></script>
Ukuran lebar Mneu dapat disesuaikan dengan lebar halaman blog(width pada #nav)
Background, warna, jenis font bisa kamu sesuaikan sendiri.
Share this article :

Tidak ada komentar:

Posting Komentar

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. BLOGATTANAHI - All Rights Reserved
Template Modify by Creating Website
Proudly powered by Blogger