`
happmaoo
  • 浏览: 4504527 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多

<script>
function CoolMenuControl(){

file://-----常规变量---

this.lastScrollX=0;
this.lastScrollY=0;
this.lastScrollW=0;
this.lastScrollH=0;
this.FlsY=0;
this.td_X=0;
this.td_Y=0;
this.td_W=0;
this.td_H=0;
this.td=0;
this.My=14;
this.mouseon=0;
this.current=null
this.hk_name;
this.hktable_name;
this.menudiv_name;
this.menutable_name;
this.menuname;
this.ml=0;
this.menuarray=new Array();
this.speed;
this.href="";

file://-----菜单项目---
function menuitem(type,value,url,target){
this.type=type
this.value=value
this.url=url
this.target=target
}

file://-----插入菜单---
this.insertmenu=function(type,value,url,target){
this.menuarray[this.menuarray.length]=new menuitem(type,value,url,target)
}

file://-----程序初试化---
this.init=function(name,bdc,bgc,speed,Alpha){
var inhtml=""
var cellcount=0
var lastcellcount=0
this.menuname=name
this.hk_name=name+"hk"
this.hktable_name=name+"hktable"
this.menudiv_name=name+"menudiv"
this.menutable_name=name+"menutable"
this.speed=speed

for (i=0;i<this.menuarray.length;i++)
{
if (this.menuarray[i].type=="2") cellcount=cellcount+1
if (this.menuarray[i].type=="1" || this.menuarray[i].type=="0") {cellcount=0}
if (lastcellcount<cellcount) {lastcellcount++}

}

file://alert(cellcount)


stylecode="cursor:hand;filter:Alpha(style=0,opacity="+Alpha+");background-color:"+bgc

suspendcode="<DIV id="+this.hk_name+" style='POSITION:absolute;z-index:3' onclick='"+name+".doClick()'>"
+"<table id="+this.hktable_name+" border='1' width='0' cellspacing='0' style='border-collapse: collapse' bordercolor='"+bdc+"'>"
+"<tr><td height='18' style='"+stylecode+"'></td></tr></table></div>";
document.write(suspendcode);

var fcell=true
for (i=0;i<this.menuarray.length;i++)
{
switch(this.menuarray[i].type)
{
case "0":
t=cellcount*2
if (t<=0)
{
inhtml+='<tr><td colspan=2 class=ht onmouseover=\''+name+'.href="'+this.menuarray[i].url+','+this.menuarray[i].target+'"\'>'+this.menuarray[i].value
}
else
{
inhtml+='<tr><td colspan='+t+' class=ht onmouseover=\''+name+'.href="'+this.menuarray[i].url+','+this.menuarray[i].target+'"\'>'+this.menuarray[i].value
}
fcell=true
break;
case "1":
t=(cellcount-1)*2
if (t<=0)
{
inhtml+='<tr><td width=6><td onmouseover=\''+name+'.href="'+this.menuarray[i].url+','+this.menuarray[i].target+'"\'>'+this.menuarray[i].value
}
else
{
inhtml+='<tr><td width=6><td colspan='+t+' onmouseover=\''+name+'.href="'+this.menuarray[i].url+','+this.menuarray[i].target+'"\'>'+this.menuarray[i].value
}
fcell=true
break;

case "2":
if (fcell)
{
inhtml+='<tr><td width=6><td onmouseover=\''+name+'.href="'+this.menuarray[i].url+','+this.menuarray[i].target+'"\'>'+this.menuarray[i].value;
fcell=false
}
else
{
inhtml+='<td width=6><td onmouseover=\''+name+'.href="'+this.menuarray[i].url+','+this.menuarray[i].target+'"\'>'+this.menuarray[i].value;
}
break;
}
}
inhtml='<div id='+this.menudiv_name+' onmousemove="'+name+'.doOver()" style="right:12px;POSITION:absolute;TOP:12px;z-index:2">'
+'<table id='+this.menutable_name+' border="0" cellpadding="2" class="menu" cellspacing="4">'
+inhtml
+'</table></div>';
file://alert(inhtml)
document.write(inhtml);

this.lastScrollX=0;
this.lastScrollY=-4;
this.posXY(eval(this.menutable_name).cells[0])
this.td_W=eval(this.menutable_name).cells[0].scrollWidth+6
this.td_H=eval(this.menutable_name).cells[0].scrollHeight
setInterval(name+".scrollback()",1)
}

file://-----单击超连接---
this.doClick=function(){
file://alert(this.url)
var url=this.href.split(",")
file://alert(url[0])
file://alert(url[1])
if (url[0]=="") return

if (url[1]=="_blank")
{window.open(url[0])}
else
{location.href=url[0]}
}

file://-----滑动处理---
this.scrollback=function(){
FY=document.body.scrollTop;
diffX=this.td_X-3
diffY=this.My
diffW=this.td_W
diffH=this.td_H

percentX=this.speed*(diffX-this.lastScrollX);
percentY=this.speed*(diffY-this.lastScrollY);
percentW=this.speed*(diffW-this.lastScrollW);
percentH=this.speed*(diffH-this.lastScrollH);
percent=.1*(FY-this.FlsY);

if(percentX>0)percentX=Math.ceil(percentX);
else percentX=Math.floor(percentX);
if(percentY>0)percentY=Math.ceil(percentY);
else percentY=Math.floor(percentY);
if(percentW>0)percentW=Math.ceil(percentW);
else percentW=Math.floor(percentW);
if(percentH>0)percentH=Math.ceil(percentH);
else percentH=Math.floor(percentH);
if(percent>0)percent=Math.ceil(percent);
else percent=Math.floor(percent);

eval(this.hk_name).style.pixelTop+=percentY+percent;
eval(this.hk_name).style.pixelLeft+=percentX;
eval(this.hktable_name).style.pixelWidth+=percentW;
eval(this.hktable_name).style.pixelHeight+=percentH;
eval(this.menudiv_name).style.pixelTop+=percent;


this.lastScrollX=this.lastScrollX+percentX;
this.lastScrollY=this.lastScrollY+percentY;
this.lastScrollW=this.lastScrollW+percentW;
this.lastScrollH=this.lastScrollH+percentH;
this.FlsY=this.FlsY+percent;
}

file://-----滑出---
this.doOver=function() {
if (event.srcElement.tagName=="TD") {
if (event.srcElement.innerText.length==0 || event.srcElement.innerText=="|") return
this.posXY(event.srcElement)
this.td_W=event.srcElement.scrollWidth+6
this.td_H=event.srcElement.scrollHeight
this.My=this.td_Y-5-document.body.scrollTop
}
}

file://-----绝对定位---
this.posXY=function(obj){
hk_left=obj.offsetLeft
hk_top=obj.offsetTop
vParent = obj.offsetParent;

while (vParent.tagName.toUpperCase() != "BODY")
{
hk_left += vParent.offsetLeft;
hk_top += vParent.offsetTop;
vParent = vParent.offsetParent;
}

this.td_X=hk_left
this.td_Y=hk_top
}

file://-----关于---
this.about=function(){
alert("OK")
}

}
</script>

<head>
<meta http-equiv="Content-Language" content="zh-cn">
<style>
.b{color=#000066;cursor:hand}
.menu {
font-family:Arial;
cursor:Default;
font-size:12px;
border:1px #000000 solid;
border-collapse: collapse;
filter:progid:DXImageTransform.Microsoft.Gradient(gradienttype=0, startcolorstr=#ffffff, endcolorstr=#dddddd)
progid:DXImageTransform.Microsoft.Shadow(direction=135,color=#cccccc,strength=3);
}
.ht{
font-weight:bold
}
</style>
<!--
第一步:实体化X-Menu类
用法:
var <实体变量>.new CoolMenuControl()
--->
<script language="javascript">
var CoolMenu3=new CoolMenuControl()

var about=new Array()
about[0]="关于X-Menu菜单\n\nAuthor:PuterJam\nCopyright 2004\n转载请通知本人"
about[1]="关于作者\n\n\"这家伙很懒,什么也没留下!!\"\n不过欢迎大家和我交流Javascript\nQQ:10644570\nE-Mail:PuterJam@etang.com"

</script>
</head>
<body>
<!--
第二步:建立菜单项目---

用法:
<实体变量>.insertmenu(类型,Html代码,链接网址,目标)
 类型:0代表菜单标题,1代表树型菜单子项目,2代表横向菜单子项目
 Html代码:显示在菜单上的Html代码
链接网址:不用多说了,网址或Javascript脚本
目标:默认为空,既不在本页打开;"_blank"代表在新的页面打开
 例如:
CoolMenu2.insertmenu("2","<img src=http://www.blueidea.com/img/icon/arrow.gif> 新浪网","http://www.sina.com.cn/","_blank")  
-->
<script>

CoolMenu3.insertmenu("0","<img src=http://bbs.dvbbs.net/Skins/Default/nofollow.gif> 树形菜单","","")
CoolMenu3.insertmenu("0","<img src=http://www.blueidea.com/img/common/logo.gif> ","http://www.blueidea.com/","_blank")
CoolMenu3.insertmenu("1","关于X-Menu菜单","javascript:alert(about[0])","")
CoolMenu3.insertmenu("1","关于作者","javascript:alert(about[1])","")
CoolMenu3.insertmenu("1","联系我","mailto:PuterJam@etang.com","")
CoolMenu3.insertmenu("1","你的浏览器版本","javascript:alert(navigator.appName)","")
</script>

<!--
第三步:建立菜单---

用法:
<实体变量>.init(实体变量名,边框颜色,背景颜色,滑动速度,背景半透明度)
'实体变量名'必须与<实体变量>相同
如果背景颜色="transparent"既为完全透明
 例如:
CoolMenu1.init("CoolMenu1","#002000","#38FFff",0.1,15)  
-->
<script>CoolMenu3.init("CoolMenu3","#002000","#f0FF00",0.3,25)</script>
<script>
for (i=0;i<=100;i++)
{
document.write(i+"<br>")
}
</script>

</body>
点击下载此文件

转自 http://www.imting.com/puterjam/blogview.asp?logID=3&cateID=1

分享到:
评论

相关推荐

    android-floating-action-menu-master.zip_floating

    在Android开发中,"android-floating-action-menu-master.zip_floating"是一个关于实现浮动动作菜单(Floating Action Menu, FAM)的项目。浮动动作按钮是Material Design设计规范中的一个重要元素,它通常是一个半...

    Android-Mod-Menu:适用于Android的浮动Mod菜单

    它支持Android 4.4.x直至Android S Preview。 支持ARMv7,x86和ARM64体系结构。 但是x86在Unity游戏中已弃用,因此x86不是我们的优先事项预习: 先决条件在我们首先进入模板之前,我们需要做一些事情。 经验丰富的...

    fab-menu:表示由浮动操作按钮触发的按钮菜单的Angular组件。 用材料设计建造

    @ angular-material-extensions / fab-menu-允许用户选择具有自动完成功能的国家或国籍的Angular Material组件-Angular V10受支持,包括。 原理图由开发人员构建并为开发人员 :red_heart_selector: 您有什么问题或...

    android-floating-action-menu:适用于 Android 的浮动操作菜单。 受 Google Plus 浮动菜单的启发

    repositories {mavenCentral()}dependencies {compile ' it.sephiroth.android.library.floatingmenu:floatingmenu:x.x.x ' // see changelog}用法在您的活动中创建对FloatingMenu的引用: FloatingActionItem item...

    Android UI之样式Menu

    首先,菜单(Menu)在Android中主要用于在屏幕顶部或浮动按钮上展示一组操作选项。它通常在三种上下文中使用:选项菜单(Option Menu)、上下文菜单(Context Menu)和弹出式菜单(Popup Menu)。我们主要关注的是...

    浮动菜单(窗口)一

    在Android开发中,浮动菜单(Floating Menu)或浮动窗口(Floating Window)是一种常见的用户界面设计,它可以提供一种轻量级的交互方式,让用户在不离开当前应用或屏幕的情况下访问额外的功能或信息。本教程将围绕...

    浮动菜单(窗口)二

    在Android开发中,浮动菜单(Floating Menu)或浮动窗口(Floating Window)是一种常见的用户界面设计,通常用于提供快捷操作或增强用户体验。在这个“android特效集锦系列之浮动菜单(窗口)二”中,我们将深入探讨...

    vant 自定义 van-dropdown-item的用法

    按钮使用浮动布局(`float: left`)并设置了圆角和背景颜色,以达到预期的设计效果。 为了实现这个自定义的 `van-dropdown-item`,开发者将所有这些元素包裹在一个弹性盒容器(`.choice`)中,使用 `flex-direction...

    Android代码-Android的浮动操作按钮快速拨号实施遵循材料设计规范

    Floating Action Button Speed Dial Android library providing an implementation of the Material...[x] Support for bottom, left and right menu expansion (left and right have no labels) [x] Out-of-t

    JQuery 模仿mac dock menu

    在提供的文件"jquery-dock-menu-2"中,我们可以找到实现这一功能的具体代码和资源,包括HTML、CSS和JavaScript文件。通过对这些文件的学习和分析,可以深入理解jQuery如何与HTML和CSS结合,实现这种交互效果。通过...

    Snipaste快速截图工具

    值得一提的是,Snipaste的贴图功能非常独特,它可以将截图直接贴回到屏幕上,作为一个浮动窗口显示,这样你在演示或者讲解时可以随时参照,而无需在多个窗口之间切换。 Snipaste的易用性也是其一大亮点。软件体积...

    实现浮动菜单

    floatingMenu.style.left = x + 'px'; floatingMenu.style.top = y + 'px'; } } function stopDrag() { isDragging = false; } ``` 对于桌面应用,例如使用JavaFX或Qt,浮动菜单的实现方式会有所不同。在...

    Overlay Menu Android.zip

    6. **权限管理**:如果Overlay Menu涉及到在其他应用之上显示,可能需要请求`SYSTEM_ALERT_WINDOW`权限,也就是常说的“浮动窗口”权限。 7. **响应式设计**:考虑到不同设备的屏幕尺寸,菜单需要具有良好的响应性...

    浏览器分辨率不一的浮动问题解决方法

    background: url(...) repeat-x scroll 0px -40px transparent; text-decoration: none; color: rgb(255, 255, 255); } ``` 然而,这种基于百分比的布局方式在浏览器窗口大小变化时,可能会导致问题。当窗口变得...

    纯CSS实现的大型下拉菜单的示例代码

    在这个例子中,`.container.cf`使用了 clearfix 技巧,确保了包含浮动元素的容器高度自适应。每个`&lt;ul&gt;`代表一列,而`.image-column`则用于包含图像。 为了在不同列之间保持适当的间距,可以使用CSS的`display: ...

    Div+CSS规则整理

    - `background-repeat`设定图像是否平铺,可选`repeat`、`no-repeat`、`repeat-x`、`repeat-y`。 - `background-position`控制图像在背景中的位置,如`top left`、`center`等。 - `background-attachment`决定...

    css导航 导航菜单

    #menu{background:url(menu_bg.gif)repeat-x; height:73px;} .menu_line{background:url(menu_line.gif)no-repeat center top; width:8px;} .menu_line2{background:url(menu_line2.gif)no-repeat center top; ...

    vue实现移动端悬浮窗效果

    this.nx = touch.clientX - this.position.x; this.ny = touch.clientY - this.position.y; this.xPum = this.dx + this.nx; this.yPum = this.dy + this.ny; // 更新悬浮窗位置 moveDiv.style.left = this....

    一般主页设置CSS模板

    - 背景图使用`../images/sc_dh_bgM.jpg`并沿X轴重复显示。 - 外边距设为10像素,使元素居中显示。 19. **.sc_dha** - 设置链接的颜色为#4A842B(一种绿色)。 20. **.sc_dha:hover** - 当鼠标悬浮在链接上时...

    Android浮动操作按钮

    在Android应用开发中,浮动操作按钮(Floating Action Button, FAB)是一种常见的设计元素,它通常位于屏幕底部右下角,用于表示主要的用户操作。`RapidFloatingActionButton`是针对这种组件的一个优化实现,提供了...

Global site tag (gtag.js) - Google Analytics