javascript - 带有窗口阴影的 Adob​​e AIR HTML 应用程序

标签 javascript html css air

我一直在构建一个使用透明窗口(不使用系统镶边)的基于 HTML 的 AIR 应用程序。我希望窗口具有阴影效果,结合使用 JavaScript 和 CSS3,我根据窗口焦点使阴影发生变化。当窗口最大化时,阴影将被完全移除。

应用程序如下所示(线框图):

enter image description here

红色区域是<html>容器本身。蓝色框是应用程序内容区域(一个简单的 <div> ),带有绿色阴影的黑色边框是一个容器 <div>在页面上绝对定位。这个黑色容器就是我设计中的应用程序本身。

如您所见,黑色边框(蓝色框周围)在页面的外边缘有一个微妙的绿色阴影。

问题是因为 <html>是 AIR 中的应用程序,这意味着由于 AIR 正在处理 <html>,因此该应用程序永远无法触及屏幕边缘。作为应用程序边缘而不是容器 <div>对于黑色边框。

关于如何解决这个问题的任何想法?我唯一能想到的是一些疯狂的 JavaScript 可以以某种方式抵消应用程序......还有其他人有这个问题吗?

最佳答案

我可能没有正确理解这个问题,或者我可能遗漏了 AIR 的限制,但我不明白为什么您想到的解决方案会很难。

当通过拖放移动应用程序窗口时,只需将窗口留在拖放位置而不检查“屏幕”边界即可。如果您确实想要检查边界,只需允许用户超出边界宽度即可。

当应用程序窗口最大化时,您可以用等于边框宽度的负值偏移应用程序容器,并为应用程序(而不是它的容器)提供屏幕的宽度和高度。

由于我目前无法测试我所说的 AIR 应用程序,我在下面用一些代码对其进行了说明 that you can test in jsfiddle .我使用 jquery 来简化代码。这是你的意思吗?

HTML:

<div id="appContainer">
    <div id="app">
        <a id="maximize" href="#">Maximize</a>
    </div>
</div>

CSS:

#appContainer {
    background-color: black;
    width: 106px;
    height: 106px;
    position: absolute;
}

#app {
    background-color: blue;
    width: 100px;
    height: 100px;
    margin: 3px;
}

Javascript:

$("#maximize").click(function(){
    var $app = $("#app");
    var $appContainer = $app.parent();
    var borderWidth = parseInt($app.css('margin'));
    $appContainer.offset({top: -borderWidth, left: -borderWidth});
    $app.width($(document).width());
    $app.height($(document).height());
});

关于javascript - 带有窗口阴影的 Adob​​e AIR HTML 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23960481/

相关文章:

html - 无法扩展div宽度

css - Rails 中数字的 Excel 样式条件格式

html - 我怎样才能打破溢出下的长字

javascript - 从父标签中通过 id 获取元素

javascript - Reactjs 输入上传不返回本地 URL

javascript - 浏览器支持 window.location.reload(true)

html - 图片不垂直调整大小/不垂直居中

javascript - React Native - 创建形状的 flex 边缘

javascript - 使用 AJAX 检索的 UTF 字符未在 Safari 中显示

html - 影响文本的CSS不透明度过渡