Das Beispiel in diesem Artikel beschreibt die JS-Implementierung des Navigationsmenücodes mit bogenförmigem Hintergrundverlaufseffekt. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Dies ist ein JS-CSS-Navigationsmenü mit personalisierten Effekten, wenn die Maus darüber fährt. Tatsächlich wird CSS verwendet, um den Hintergrund aufzurufen, und JavaScript wird verwendet, um die Bewegung des Hintergrunds zu steuern. und jQuery wurde verwendet, um ähnliche Funktionen zu erreichen. Das Gesamtgefühl ist sehr gut.
Der Screenshot des Laufeffekts sieht wie folgt aus:
Die Online-Demo-Adresse lautet wie folgt:
http://demo.jb51.net/js/2015/js-css-cicle-cha-nav-menu-demo/
Der spezifische Code lautet wie folgt:
<!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>
Ich hoffe, dass dieser Artikel für die JavaScript-Programmierung aller hilfreich sein wird.