Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带窗口阴影的AdobeAIR HTML应用程序_Javascript_Html_Css_Air - Fatal编程技术网

Javascript 带窗口阴影的AdobeAIR HTML应用程序

Javascript 带窗口阴影的AdobeAIR HTML应用程序,javascript,html,css,air,Javascript,Html,Css,Air,我一直在构建一个基于HTML的AIR应用程序,它使用一个透明窗口(不使用chrome系统)。我希望窗口有一个阴影效果,使用JavaScript和CSS3的组合,我可以根据窗口焦点改变阴影。当窗口最大化时,阴影将完全消除 应用程序如下所示(线框图): 红色区域是容器本身。蓝色框是应用程序内容区域(一个简单的),带绿色阴影的黑色边框是一个容器,它绝对位于页面上。这个黑色容器就是我设计的应用程序本身 如您所见,黑色边框(蓝色框周围)在页面的外边缘有一个细微的绿色阴影 问题在于,由于是空气中的应用程序

我一直在构建一个基于HTML的AIR应用程序,它使用一个透明窗口(不使用chrome系统)。我希望窗口有一个阴影效果,使用JavaScript和CSS3的组合,我可以根据窗口焦点改变阴影。当窗口最大化时,阴影将完全消除

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

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

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

问题在于,由于
是空气中的应用程序,这意味着应用程序永远无法接触屏幕边缘,因为空气将
视为应用程序边缘,而不是黑色边框的容器


有什么办法可以解决这个问题吗?我能想到的唯一一件事就是一些疯狂的JavaScript,它可以以某种方式抵消应用程序。。。。还有其他人有这个问题吗?

我可能没有正确理解这个问题,或者我缺少了一个空气的限制,但我不明白为什么你想到的解决方案会很难

当应用程序窗口以拖放方式移动时,只需将窗口留在拖放位置而不检查“屏幕”边界即可。如果您确实想检查边界,只需允许用户根据边界的宽度离开边界即可

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

由于我目前无法测试我所说的AIR应用程序,因此我将在下面用一些代码对其进行说明。我使用jquery简化了代码。这就是你的意思吗

HTML:

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会“疯狂”?如果应用程序是绝对定位的,你不能给它一个离像素几点(可能是负数)的位置,并在移动/重新绘制窗口时考虑这个位置吗?想举个例子说明你的意思吗?
#appContainer {
    background-color: black;
    width: 106px;
    height: 106px;
    position: absolute;
}

#app {
    background-color: blue;
    width: 100px;
    height: 100px;
    margin: 3px;
}
$("#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());
});