A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 编程开发 > 网站开发 > JS实现带圆弧背景渐变效果的导航菜单代码

JS实现带圆弧背景渐变效果的导航菜单代码

时间:2015-10-15 16:08作者:yezheng人气:116

本文实例讲述了JS实现带圆弧背景渐变效果的导航菜单代码。分享给大家供大家参考。具体如下:

这是一款效果个性的JS+CSS导航菜单,鼠标经过时出现有趣弧形背景,实际上,这里用CSS调用了背景,用JavaScript控制了背景的移动,用jQuery实现过类似的功能,整体感觉很不错。

具体代码如下:

<!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>

<title>圆弧背景的导航菜单</title>

<meta http-equiv="content-type" content="text/html;charset=gb2312">

<style type="text/css">

*{margin:0px;padding:0px;font-size:12px;}

.div_menu{ position:absolute;left:100px;top:100px;}

.ul_menu{list-style:none;}

.ul_menu li{float:left;margin-left:1px;border:1px solid #33CCCC;display:block;padding:5px 3px;background:url(images/menu_bg.gif) repeat-x 0px -80px;padding:2px 12px;}

.ul_menu li a{height:40px;width:auto;color:#ffffff;font-size:20px;font-weight:600;text-decoration:none;}

</style>

<script type="text/javascript">

var isIE = (document.all)?true:false;

var $ID = function(id){

return "string"==typeof id?document.getElementById(id):id;

}

var Class = {

create:function(){

return function(){

this.initilize.apply(this,arguments);

}

}

}

var Extend = function(destination, source){

for(var property in source){

destination[property] = source[property];

}

}

var Bind = function(object,fun){

var args = Array.prototype.slice.call(arguments).slice(2);

return function(){

return fun.apply(object,args);

}

}

var BindAsEventListener = function(object,fun){

var args = Array.prototype.slice.call(arguments).slice(2);

return function(event){

return fun.apply(object,[event||window.event].concat(args));

}

}

function addEventHandler(oTarget, sEventType, fnHandler) {

if (oTarget.addEventListener) {

oTarget.addEventListener(sEventType, fnHandler, false);

} else if (oTarget.attachEvent) {

oTarget.attachEvent("on" + sEventType, fnHandler);

} else {

oTarget["on" + sEventType] = fnHandler;

}

};

function removeEventHandler(oTarget, sEventType, fnHandler) {

if (oTarget.removeEventListener) {

oTarget.removeEventListener(sEventType, fnHandler, false);

} else if (oTarget.detachEvent) {

oTarget.detachEvent("on" + sEventType, fnHandler);

} else {

oTarget["on" + sEventType] = null;

}

};

</script>

<script type="text/javascript">

var MyMenu = Class.create();

MyMenu.prototype = {

initilize:function(ul){

this.lis = ul.getElementsByTagName("li");

for(var i=0;i<this.lis.length;i++){

new BgChange(this.lis[i]);

}

}

}

var BgChange = Class.create();

BgChange.prototype = {

initilize:function(li){

this.li = li;

this._fnMouseOver = Bind(this,this.MouseOver);

this._fnMouseOut = Bind(this,this.MouseOut);

addEventHandler(this.li,"mouseover",this._fnMouseOver);

addEventHandler(this.li,"mouseout",this._fnMouseOut);

this.timer = null;

this.i = -80;

},

MouseOver:function(){

this.Stop();

this.i+=2;

if(this.i>=0){

window.clearTimeout(this.timer);

this.i = 0;

}else{

this.ShowBg();

this.timer = window.setTimeout(this._fnMouseOver,10);

}


},

MouseOut:function(){

this.Stop();

this.i-=2;

if(this.i<=-80){

window.clearTimeout(this.timer);


this.i = -80;

}else{

this.ShowBg();

this.timer = window.setTimeout(this._fnMouseOut,10);

}

},

ShowBg:function(){

this.li.style.backgroundPosition = "0px " + this.i + "px";

},

Stop:function(){

if(this.timer){

window.clearTimeout(this.timer);

}

}

}

onload = function(){

new MyMenu($ID("ul_menu"));

}

</script>

</head>

<body>

<div class="div_menu">

<ul class="ul_menu" id="ul_menu">

<li><a href="#">欢迎光临</a></li>

<li><a href="#">最新更新</a></li>

<li><a href="#">下载排行</a></li>

<li><a href="#">网页特效</a></li>

<li><a href="#">广告联系</a></li>

</ul>

</div>

</body>

</html>

希望本文所述对大家的JavaScript程序设计有所帮助。

标签实现,圆弧,背景,渐变,效果,导航,菜单,代码,本文,实例

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号