当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 用JS实现网页元素阴影效果的研究总结

Javascript
玩透弹出窗口
几个常用的日期函数
简单的脚本帮你编排JScript程序中的缩进
得到 words.js?hello,world! 参数的处理方法
如何在javascript中传值
可输入的select
IE支持的HTML元素的DISABLE属性在NETSCAPE4.76中的实现
利用xml数据岛实现多级关联下拉选择框的做法
利用Wipe等ActiveX技术,实现n(n>>2)幅图片轮换擦洗显示
Javascript技术实现真正的网上试听
JavaScript实现在线编辑表格
根据客户端的分辨率不同而重定向到不同网页的脚本
几种不刷新页面取数据的方法
web进度条
随手写的一个动态添加删除行的HTC行为组件
农历与阳历的对照
关于在页面中解决打印的几个问题
"打开,另存为,属性,打印"等14个JS代码
无提示框关闭IE窗口
实现上传(增删)多个文件的客户端写法。

Javascript 中的 用JS实现网页元素阴影效果的研究总结


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 67 ::
收藏到网摘: n/a

前两天由于一个小项目想为一元素添加一个阴影效果,但是记得看过某高人写的"用Div/CSS模拟阴影效果"文章,现在还有一点印象,其思路很简单,主要是利用几个层的定位偏移来实现的阴影特效,于是偶就想能不能封装成一个js函数,方便在每个html对象上调用.
  开始偶以为很简单,但实现过程中确遇到了很多问题,其中最严重的就是浏览器的兼容问题,整整耗了偶整个晚上加半个通宵的时间才搞定,汗呢!不过从这个小东西让我对js及一些浏览器之间的差异及解决办法有了更多更深刻的认识.
总结于此,以备以后查看方便!
代码如下:
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

设计的主题思路是:
对于需要添加阴影的元素:
IE/NS:创建一个与元素大小相同位置相同的层,并利用偏移的方法使该层实现阴影,然后根据对元素的绝对位置判断将层定位到相同的位置并设置z-index=-1;从而实现阴影效果.
FF/Opear:思路同上,但因为FF/Opear不支持z-index:-1,所以必须通过将原来元素的z-index设为大于0的值(需要将元素设为绝对定位)从而达到覆盖阴影层的效果,因为要设置z-index,必须将元素设为绝对定位,因此这里就比较麻烦了,偶的解决办法是先克隆一个元素完全相同的内容,并将其设为隐藏(使用visibility:hidden)但仍然占位,然后放到原元素的位置,而把原元素设为绝对定位并设定z-index的值大于0.
在制作过程中遇到很多问题,其中主要问题有:
1,style.cssText属性只有除opera外的浏览器才支持,
2,offsetleft和offsetTop在IE/Opear和FF及NS中解释不同.
(还包括一些不同浏览器出现的小bug,解决办法见上篇日志)
不过好在都一一解决了!现在能兼容大多数浏览器的新版本.偶在IE6.0,FF2.0,NS8.1,Opear9.0下测试通过