`
jssay
  • 浏览: 27629 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

如何解决Div层被Applet遮住问题

阅读更多
前段时间遇到一个task,内容大致是这样的:

有一个flex做的组件,能够根据配置文件,数据文件和样式文件来动态显示我们的数据。其UI类似一个table,有标题栏和数据栏。且不说这个组件如何难实现。我的任务是要在鼠标移至这个控件的每一个单元格时,弹出一个div层,用来显示与此单元格有关的数据。

要弹出一个div层并不难,因为flex是支持javascript的function调用的,难点有二,一是鼠标定位,我要让弹出的window不偏不移地显示在鼠标正下方,因为是在flex组件上定位不同于在纯HTML中定位,最后的解决办法是:在flex内部计算出每个单元格的左上角的顶点坐标和单元格的高度,因为这个高度只是相对flex组件的,我还需要求出这个flex组件的左上角顶点坐标,然后我才能得出每个单元格左下角定点的坐标,进而确定弹出窗口的位置。二是要求这个弹出窗口有半透明边框,有点模糊却能看到后面的内容。找了个web designer画一个,用的是PNG格式,一开始始终不能用,在fireforks和photoshop里是透明的,但是到网页上却没有了透明效果,最后发现用GIF格式的图片可以,如果用PNG格式的话必须用8位的,而24位和32位都不行。

这两个问题解决了,我以为彻底解放了,试了试效果还挺不错。但是当我点到最后一行的某个单元格时,发现弹出窗口的下半部分被遮住了,十分难看。原因是我们做的这个网站包含了好几个组件,这个flex组件的下面是一个Applet。而我们的div层就这样被Applet无情地遮住了。

我试了div标签的z-index属性,把这个值设的很高很低都不行。然后上网查资料说Applet的层级是最高的,要想不被Applet遮住,有几个办法,一个是用iframe,另一个就是把弹出的窗口也做成flex,我采用了第一个方法,把弹出的窗口做成了一个iframe.确实被Applet遮住的问题解决了,心里暗爽了一把,但是很快又发现透明边框没有了,原来整个弹出窗口被包含进iframe之后,尽管iframe是可以设置成透明效果的,但是一旦这么做,弹出窗口上面的内容就又都没有了,这个方法被实践证明行不通。如果用透明边框包住一个iframe呢,结果透明边框有了,内容也没有丢失,但事最下面一行的最下面部分的透明边框被遮住了一部分。虽然相比前面的方法有显著的改善,但是还是没有达到目的。

最后我们小组讨论了很多方案,有说把弹出窗口用flex 实现的,有说把下面的Applet也换成flex组件,也有人建议把下面的Applet移走。我倒是有一个想法,就是当我检测到向下弹出窗口而位置不足时,我就向上弹出窗口。但是这个窗口的大小事要随着内容的大小而自适应大小的,我很难取到准确的高度和顶点坐标,结果这一想法也被否定了。

最后还是客户妥协,认为只有极少一部分透明边框被遮住是可以接受的。听到这个消息后,我不知道是该高兴呢还是伤心。本来我可以放下这个包袱去做更重要的事情,但是我是一个完美主义者,这点缺憾是我内心深处所不允许的,所以直到现在我还一直关心这件事,希望有类似经验的人看到我的这篇文章之后,能给我指点迷津。就当时抛砖引玉吧。。。。
0
0
分享到:
评论
1 楼 xiangxji 2012-10-09  
你好,遇到了相同的问题,请问大侠目前有没有找到解决方案?

相关推荐

    解决java Applet被Dialog遮住

    解决java Applet被Dialog遮住 的问题 跟浏览器有很大关系 升级了浏览器 可能又会出现问题 不好搞 但其中有DIV浮在java applet上的成功例子 firefox8.01已成功通过 可以参考一下 

    Applet程序,含有未解决的问题

    标题中的“Applet程序,含有未解决的问题”可能指的是开发者在编写或运行Applet时遇到了一些困难,这些问题可能涵盖多个方面,包括但不限于以下几点: 1. **安全性问题**:由于Applet运行在用户的机器上,因此对...

    CSS里元素初始化文件html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr,

    对css里的元素如:html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, ...

    applet中文乱码问题的解决.txt

    ### Applet中文乱码问题解析及解决方案 #### 一、问题背景 在早期的Web开发中,Applet作为Java的一项关键技术被广泛应用于浏览器插件开发之中。然而,在使用Applet时,开发者经常会遇到中文显示乱码的问题。这个...

    applet z-index 问题

    在我们的例子中,开发者遇到的问题是`div`弹出层(通常用作提示、对话框或遮罩)无法覆盖页面上的Java Applet。这可能是由于以下几个原因: 1. **Z-Index值设置不当**:确保`div`元素的Z-Index值高于Applet的默认值...

    applet下载操作及权限问题

    - **验证签名**:用户浏览器会验证签名的有效性,确保Applet未被篡改。 6. **安全提示** - **用户角度**:用户应谨慎对待权限请求,避免不必要的风险。 - **开发者角度**:开发者应负责任地使用权限,避免滥用...

    解决Eclipse运行Applet没有显示图片的方法

    通过以上方法,你应该能够解决Eclipse中运行Applet时图片不显示的问题。在开发过程中,遇到此类问题不要急于求成,仔细检查每个环节,通常都能找到问题的根源。同时,保持良好的代码组织和资源管理习惯,也能避免...

    applet内存泄漏问题.rar

    "applet内存泄漏问题.rar"这个压缩包包含了关于Applet内存泄漏的分析和解决方法的相关文档。 内存泄漏是指程序在申请内存后,无法释放已不再使用的内存空间,导致系统可用内存逐渐减少,性能下降,甚至可能引发程序...

    Applet

    随着Web技术的发展,Applet由于其安全性、兼容性和性能问题,逐渐被更现代的技术如JavaScript、Ajax、Flash以及现在广泛采用的HTML5取代。不过,理解Applet的工作原理和生命周期对于理解Java Web开发的历史和现代Web...

    Applet整合到web环境

    本文将深入探讨如何将Applet整合到Web环境,以及解决IE浏览器报找不到类错误的问题。 首先,我们需要理解Applet的生命周期,它包括初始化、加载、显示、暂停、停止和销毁六个阶段。在Web页面中,Applet通过HTML的...

    Applet小游戏 Applet小游戏 Applet小游戏

    它们通过`<applet>`标签或者`<object>`标签在HTML页面中被引用,从而在客户端(用户的浏览器)中执行。Applet的生命週期包括初始化、启动、绘画、停止和终止等阶段,开发者需要覆盖这些阶段的相关方法来实现具体功能...

    java的applet实例

    Java的Applet实例是Java编程领域中的一个基础概念,它主要涉及到Web应用程序的早期开发技术。Applet是一种在客户端浏览器中运行的小型Java程序,它能够增强网页的交互性,提供动态内容展示。在Java的发展历程中,...

    WEB中Applet找不到class的问题

    然而,开发和部署Applet时,开发者经常会遇到“找不到class”的问题,这通常是由于类路径配置不当或者文件组织结构错误导致的。本文将详细讲解如何解决这两种常见情况。 **第一种情况:Applet类不在任何包中** 当...

    一个Applet小例子

    Applet是Java编程语言中的一种特殊类型,它允许在网页中嵌入小型的...然而,由于现代浏览器逐渐弃用了Applet技术,现在更常见的是使用Java Web Start或完全基于Web的解决方案,如JavaScript和WebGL来实现类似的功能。

    Java Applet 入门教程

    初始化阶段是Applet被创建时,加载阶段是Applet的图形用户界面(GUI)组件被绘制,运行阶段是Applet开始执行其主要任务,终止阶段是Applet被销毁时。 **Applet 的主要类和方法** - `Applet` 类:所有Applet的基类...

    java applet实例讲解

    Java Applet是Java技术在...总结,Java Applet是Java历史上的一个重要篇章,虽然现在已被其他技术取代,但它的概念和技术仍值得学习和理解。通过实践简单的Applet实例,你可以更好地掌握Java编程和Web开发的基本原理。

    Java Applet实例讲解

    Java Applet是Java技术在早期Web开发中的一种应用方式...虽然现在其使用已不如从前,但掌握Java Applet的概念和技术可以帮助我们更好地理解Web客户端编程的发展历程,同时也能提升我们在现代Web开发中的问题解决能力。

Global site tag (gtag.js) - Google Analytics