分享
 
 
 

浮动菜单是如何作出来的mouse事件

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

这个问题由我来做一个最终解答吧。我以前也同样惊异于闪光地带的这个特效,苦恼于不知如何实现。我在经典提问,有一位网友热心解答了我的问题,但只是局限于如何加入和“闪光地带”同样的效果,而且并不完美,实际上这个脚本还可以实现许多效果,不知是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)

其余注意的要点:

在<BODY></BODY>标签内必须有下面的2行:

<DIV ID="overDiv" STYLE="position:absolute; visibility:hide; z-index:1;"></DIV>

<SCRIPT LANGUAGE="JavaScript" SRC="overlib.js"></SCRIPT>

CSS用下面的一行控制,放在<head></head>之间。

<LINK REL="stylesheet" HREF="overlib.css" TYPE="text/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 = "<TABLE WIDTH="+width+" BORDER=0 CELLPADDING="+border+" CELLSPACING=0 BGCOLOR=\""+backcolor+"\"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR=\""+fcolor+"\"><TR><TD><FONT FACE=\"宋体\" COLOR=\""+textcolor+"\">"+text+"</FONT></TD></TR></TABLE></TD></TR></TABLE>"

layerWrite(txt);

dir = d;

disp();

}

// Caption popup

function dtc(d,text, title) {

txt = "<TABLE WIDTH="+width+" BORDER=0 CELLPADDING="+border+" CELLSPACING=0 BGCOLOR=\""+backcolor+"\"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD><SPAN ID=\"PTT\"><FONT COLOR=\""+capcolor+"\">"+title+"</FONT></B></SPAN></TD></TR></TABLE><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR=\""+fcolor+"\"><TR><TD><SPAN ID=\"PST\"><FONT COLOR=\""+textcolor+"\">"+text+"</FONT><SPAN></TD></TR></TABLE></TD></TR></TABLE>"

layerWrite(txt);

dir = d;

disp();

}

// Sticky

function stc(d,text, title) {

sw = 1;

cnt = 0;

txt = "<TABLE WIDTH="+width+" BORDER=0 CELLPADDING="+border+" CELLSPACING=0 BGCOLOR=\""+backcolor+"\"><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD><SPAN ID=\"PTT\"><FONT COLOR=\""+capcolor+"\">"+title+"</FONT></B></SPAN></TD><TD ALIGN=RIGHT><A HREF=\"/\" onMouseOver=\"cClick();\" ID=\"PCL\"><FONT COLOR=\""+closecolor+"\">Close</FONT></A></TD></TR></TABLE><TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR=\""+fcolor+"\"><TR><TD><SPAN ID=\"PST\"><FONT COLOR=\""+textcolor+"\">"+text+"</FONT><SPAN></TD></TR></TABLE></TD></TR></TABLE>"

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://www.nedstat.nl/cgi-bin/nedstat.gif?name=ol2t";

bt=new Image(1,1); bt.src="http://webdesign.chinaitlab.com/UploadFiles_8014/200605/20060512113425323.gif";

refnd=new Image(1,1); refnd.src="http://www.nedstat.nl/cgi-bin/referstat.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用自己的就行了,没必要用他的。最后希望大家能用好这个特效来装点自己的主页,一定要记得好东东要共享哦!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有