Tuesday, May 31, 2011

Sliding Menu Effect, Single Level Menu using Jquery, Jquery Tutorial for Sliding Effect

When we create Web pages there is a big roll of animation of menu.

here I am providing one of menu effect available in Javascript.






HTML CODE
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sliding Menu Effect</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript" language="javascript" 
 src="script.js"></script>
</head>
<body onload="menuSlider.init('menu','slide')">
<div class="menu">
    <ul id="menu">
        <li><a href="#">JavaScript</a></li>
<li><a href="#">Graphic Design</a></li>
        <li><a href="#">HTML</a></li>
        <li value="1"><a href="#">User Interface</a></li>
        <li><a href="#">CSS</a></li>
    </ul>
    <div id="slide"><!-- --></div>
</div>
</body>
</html>
 




CSS Classes
<style>
body {font:14px Helvetica, sans-serif; font-weight:bold; 
background:#FFF}
.menu {position:relative; background:url(images/bg.gif) no-repeat; 
height:35px; 
width:459px}
.menu ul {list-style:none; z-index:10; position:absolute; z-index:100; 
padding:9px 5px}
.menu li {float:left}
.menu a, .menu a:active, .menu a:visited {text-decoration:none; 
color:#FFF; 
padding:10px}
.menu a:hover {color:#ebf0e6}
#slide {position:absolute; bottom:0; height:4px; 
background:#89957a; z-index:10}
 </style>





JavaScript
<script>
var menuSlider=function(){
 var m,e,g,s,q,i; e=[]; q=8; i=8;
 return{
  init:function(j,k){
 m=document.getElementById(j); e=m.getElementsByTagName('li');
 var i,l,w,p; i=0; l=e.length;
 for(i;i<l;i++){
var c,v; c=e[i]; v=c.value; 
if(v==1){s=c; w=c.offsetWidth; p=c.offsetLeft}
 c.onmouseover=function(){menuSlider.mo(this)}; c.onmouseout=function()
{menuSlider.mo(s)};
 }
 g=document.getElementById(k); g.style.width=w+'px'; g.style.left=p+'px';
 },
 mo:function(d){
 clearInterval(m.tm);
 var el,ew; el=parseInt(d.offsetLeft); ew=parseInt(d.offsetWidth);
 m.tm=setInterval(function(){menuSlider.mv(el,ew)},i);
 },
 mv:function(el,ew){
 var l,w; l=parseInt(g.offsetLeft); w=parseInt(g.offsetWidth);
 
if(l!=el||w!=ew){
if(l!=el){
var ld,lr,li; ld=(l>el)?-1:1; 
lr=Math.abs(el-l); 
li=(lr<q)?ld*lr:ld*q; g.style.left=(l+li)+'px'}
if(w!=ew){
var wd,wr,wi; wd=(w>ew)?-1:1; 
wr=Math.abs(ew-w); 
wi=(wr<q)?wd*wr:wd*q; g.style.width=(w+wi)+'px'}
 }else{clearInterval(m.tm)}
}};}();
 
</script> 



Online Example

No comments: