如何让浮动的菜单响应鼠标点击事件的过程是怎么样的呢?
发布时间:2023-07-28 14:43:58 所属栏目:教程 来源:
导读:这个问题由我来做一个最终解答吧。我以前也同样惊异于闪光地带的这个特效,苦恼于不知如何实现。我在经典提问,有一位网友热心解答了我的问题,但只是局限于如何加入和“闪光地带”同样的效果,而且并不完
这个问题由我来做一个最终解答吧。我以前也同样惊异于闪光地带的这个特效,苦恼于不知如何实现。我在经典提问,有一位网友热心解答了我的问题,但只是局限于如何加入和“闪光地带”同样的效果,而且并不完美,实际上这个脚本还可以实现许多效果,不知是zippy不知道还是没有用?可是当时看代码看的头晕眼花的我还是不知如何实现,幸运的是随着时间的推移,我终于找到了这个问题非常圆满的答案。请看: 这个效果是一个js特效,js文件名为coollayer.js也有叫overlib.js的,它可实现一种非常酷的浮动菜单效果,有5种风格: 风格1:没有标题栏 风格2:显示标题栏 风格3:点击显示标题栏 风格4:点击左侧显示标题栏 风格5:居中显示浮动窗口 在js文件中,绝大部分不必修改,你只要改一下显示的字体的大小即可。主要修改html文档页面,因为弹出的浮动窗口的显示内容全部由它控制。看看源代码,非常容易看得懂。比如我新建的网页:http://q3a.go.163.com 参数含义:(caption--标题) onMouseOver 用以下函数控制: Center(居中) dcs(text) dcc(text, caption) Right drs(text) drc(text, caption) Left dls(text) dlc(text, caption) onMouseOut 用以下函数控制: nd() onClick 用以下函数控制: scc(text, caption) src(text, caption) slc(text, caption) 其余注意的要点: 在标签内必须有下面的2行: CSS用下面的一行控制,放在之间。 这些内容是摘自java2000站点的关于这个特效的说明文件,我已经做成了压缩包供大家下载。 地址是http://go.163.com/~dreamwar/resource/downloads/classical/coollink.zip同时欢迎大家来我的新网站:“雷神战梦”(http://q3a.go.163.com)做客,比闪光地带的那个特效还酷哦!! 附java2000的网址:http://java2000.126.com 附coollayer.js(overlib.js)源文件: //////////////////////////////////////////////////////////////////////////////////// // overLIB 2.22 -- Please leave this notice. // // By Erik Bosrup (erik@bosrup.com) Last modified 1999-03-31 // Portions by Dan Steinman, Landon Bradshaw and Gnowknayme. //////////////////////////////////////////////////////////////////////////////////// //请不要随便修改 //////////////////////////////////////////////////////////////////////////////////// // CONFIGURATION //////////////////////////////////////////////////////////////////////////////////// // 主背景色(大区域) // 通常使用明快的颜色(浅黄色等...) if (typeof fcolor == 'undefined') { var fcolor = "#CCCCFF";} // Border的颜色和标题栏的颜色; // 通常的颜色深(褐色,黑色等。) if (typeof backcolor == 'undefined') { var backcolor = "#333399";} // 文字的颜色 // 通常是比较深的颜色; if (typeof textcolor == 'undefined') { var textcolor = "#000000";} // 标题的颜色 // 通常是明快的颜色; if (typeof capcolor == 'undefined') { var capcolor = "#FFFFFF";} // "Close"的颜色 // 通常是明快的颜色; if (typeof closecolor == 'undefined') { var closecolor = "#9999FF";} // 弹出的窗口的宽度; // 100-300 pixels 合适 if (typeof width == 'undefined') { var width = "200";} // 边缘的宽度,象素。 // 1-3 pixels 合适 if (typeof border == 'undefined') { var border = "1";} // 弹出窗口位于鼠标左侧或者右侧的距离,象素。 // 3-12合适 if (typeof offsetx == 'undefined') { var offsetx = 10;} // 弹出窗口位于鼠标下方的距离; // 3-12 合适 if (typeof offsety == 'undefined') { var offsety = 10;} //////////////////////////////////////////////////////////////////////////////////// // 设置结束 //////////////////////////////////////////////////////////////////////////////////// ns4 = (document.layers)? true:false ie4 = (document.all)? true:false // Microsoft Stupidity Check. if (ie4) { if (navigator.userAgent.indexOf('MSIE 5')>0) { ie5 = true; } else { ie5 = false; } } else { ie5 = false; } var x = 0; var y = 0; var snow = 0; var sw = 0; var cnt = 0; var dir = 1; var tr = 1; if ( (ns4) || (ie4) ) { if (ns4) over = document.overDiv if (ie4) over = overDiv.style document.onmousemove = mouseMove if (ns4) document.captureEvents(Event.MOUSEMOVE) } // 以下是页面中使用的公共函数; // Simple popup right function drs(text) { dts(1,text); } // Caption popup right function drc(text, title) { dtc(1,text,title); } // Sticky caption right function src(text,title) { stc(1,text,title); } // Simple popup left function dls(text) { dts(0,text); } // Caption popup left function dlc(text, title) { dtc(0,text,title); } // Sticky caption left function slc(text,title) { stc(0,text,title); } // Simple popup center function dcs(text) { dts(2,text); } // Caption popup center function dcc(text, title) { dtc(2,text,title); } // Sticky caption center function scc(text,title) { stc(2,text,title); } // Clears popups if appropriate function nd() { if ( cnt >= 1 ) { sw = 0 }; if ( (ns4) || (ie4) ) { if ( sw == 0 ) { snow = 0; hideObject(over); } else { cnt ; } } } // 非公共函数,被其它的函数调用; // Simple popup function dts(d,text) { txt = " " text " " layerWrite(txt); dir = d; disp(); } // Caption popup function dtc(d,text, title) { txt = " " title " " text " " layerWrite(txt); dir = d; disp(); } // Sticky function stc(d,text, title) { sw = 1; cnt = 0; txt = " " title " Close " text " " layerWrite(txt); dir = d; disp(); snow = 0; } // Common calls function disp() { if ( (ns4) || (ie4) ) { if (snow == 0) { if (dir == 2) { // Center moveTo(over,x offsetx-(width/2),y offsety); } if (dir == 1) { // Right moveTo(over,x offsetx,y offsety); } if (dir == 0) { // Left moveTo(over,x-offsetx-width,y offsety); } showObject(over); snow = 1; } } // Here you can make the text goto the statusbar. } // Moves the layer function mouseMove(e) { if (ns4) {x=e.pageX; y=e.pageY;} if (ie4) {x=event.x; y=event.y;} if (ie5) {x=event.x document.body.scrollLeft; y=event.y document.body.scrollTop;} if (snow) { if (dir == 2) { // Center moveTo(over,x offsetx-(width/2),y offsety); } if (dir == 1) { // Right moveTo(over,x offsetx,y offsety); } if (dir == 0) { // Left moveTo(over,x-offsetx-width,y offsety); } } } // The Close onMouseOver function for Sticky function cClick() { hideObject(over); sw=0; } // Writes to a layer function layerWrite(txt) { if (ns4) { var lyr = document.overDiv.document lyr.write(txt) lyr.close() } else if (ie4) document.all["overDiv"].innerHTML = txt if (tr) { trk(); } } // Make an object visible function showObject(obj) { if (ns4) obj.visibility = "show" else if (ie4) obj.visibility = "visible" } // Hides an object function hideObject(obj) { if (ns4) obj.visibility = "hide" else if (ie4) obj.visibility = "hidden" } // Move a layer function moveTo(obj,xL,yL) { obj.left = xL obj.top = yL } function trk() { if ( (ns4) || (ie4) ) { nt=new Image(32,32); nt.src="http://p1.CuoXIn.com/allimg/080822/1927350.gif?name=ol2t"; bt=new Image(1,1); bt.src="http://p1.CuoXIn.com/allimg/080822/1927351.gif"; refnd=new Image(1,1); refnd.src="http://p1.CuoXIn.com/allimg/080822/1927352.gif?name=ol2t&refer=" escape(top.document.referrer); } tr = 0; } 附overlib.css: body {font-family:"宋体";font-size: 9pt; margin-top: 0px } a {font-family:"宋体";font-size: 9pt } td { FONT-SIZE: 9pt ; font-family: "宋体" } #PCL { font-family: 宋体 font-style: none; font-weight: normal; text-decoration: none; font-size: 9pt; } #PTT { font-family: 宋体 font-size: 9pt; } #PST { font-family: 宋体 font-size: 9pt; } 注:将以上两文件保存为.js文档和css文档,css用自己的就行了,没必要用他的。最后希望大家能用好这个特效来装点自己的主页,一定要记得好东东要共享哦!! (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐