演示 |
下载| 引 用 : |
写了一个动态生成的下拉菜单程序,使用了XHTML,CSS,JavaScript,DOM,ASP,Access技术。使用的时候只需要根据自己的需要修改intTableWidth(设置菜单的表格宽度),strBGColor1(设置菜单选项的背景颜色),strBGColor2(设置菜单选项的背景颜色),strTDBorder(设置菜单选项的边框颜色)和blnOpenNewWin(是否在新窗口中打开页面)。代码主要由三部分组成:
1. ASP代码只是用循环从数据库取出分类记录,同时动态生成层及样式。大家可以注意一下关于层相对位置的处理方法,在CSS中设置"position:relative;"。
2. 显示或隐藏层的JavaScript代码,调用showHideLayer(layerID)函数即可。调用函数的时候带入layerID参数,也就是层的名称。层的名称在ASP代码的循环中产生。
3. 改变菜单选项的背景颜色的JavaScript代码,通过调用changeBgColor(td)函数实现。这部分代码稍稍复杂一点,复杂的地方在于各个浏览器对对JavaScript中的element.style.backgroundColor属性的表示手段不一样。在MS IE中用十六进制颜色表示为:"#cccccc",而在Mozilla Firefox和Netscape中却用十进制颜色表示,并且这两个浏览器对十进制颜色的表示又有些不一样。Mozilla Firefox中表示为"rgb(204, 204, 204)"(逗号后面有空格),而Netscape中表示为"rgb(204,204,204)"(逗号后面没有空格)。
浏览器之间的差异使得Web开发人员总是陷入处理这些麻烦的细节。通常Mozilla Firefox和Netscape中对JavaScript和CSS的支持是非常相近的,即便是element.style.backgroundColor属性也都是用十进制表示,可Mozilla Firefox中的逗号后面出现了空格……这并不是什么大问题,用修剪字符串方法就可以解决,可是每天都要面对这么多麻烦的细节啊
为了让这个动态生成的下拉菜单程序尽可能多的适应不同的浏览器,于是写了个convertToHexColor(decColor)方法。带入一个十进制颜色,就可以返回该颜色的十六进制表示方法。并且带入的十进制颜色的逗号后面无所谓有没有空格。在构造convertToHexColor(decColor)方法的时候采用了为String对象添加trim()方法和toHex()方法,这样再来操作十进制颜色的字符串,就比较舒服了。
好了,就介绍到这里。可以下载程序包,包括两个文件:Menu.asp和Menu.mdb。如有可以继续完善的地方,请你告诉我。 |
|
查看更多与动态生成的下拉菜单相关内容