如何让横幅关闭功能在上一个答案中起作用?

时间:2014-11-04 22:49:09

标签: javascript html banner

David Thomas之前回答过有关超强横幅的问题,默认情况下会在访问者查看主要内容之前查看。

Superimpose a banner div over another div, with jQuery if possible

我尽可能地编码并且它在某种程度上起作用,但是有一些问题,完全归结于我对这些问题的低级知识!

1)X关闭不起作用,但它不会因为我还没有把编码的JSQuery部分放在任何地方 - 它去哪里 - 是否有一个单独的JS文件(在这种情况下你如何在html中引用它?),或者它是否与CSS等标题一起?对不起这个愚蠢的问题

2)我的横幅只有250像素的高度,但下面的内容是几段长 - 内容已被横幅隐藏(白色背景,我选择,因为横幅本身是白色)但页脚是在页面底部,在内容结束的下方,所以有一个很大的差距,看起来有点废话。我可以让页面只显示其实际高度的横幅,然后当它关闭时,页面会延伸到显示内容的样子吗?我知道的非技术术语但不知道如何解释......

3)我的横幅没有覆盖内容的整个宽度,所以我可以将其居中,而不是将其置于0,0?

非常感谢 克莱尔

1 个答案:

答案 0 :(得分:0)

问题1:您可以将jquery代码复制到单独的文件中,例如名为main.js,并使用

将其包含在html页面的头部
<script src="main.js"></script>

以防文件位于您的html页面旁边。更好的做法是为css,脚本和图像使用单独的文件夹,例如,如果你有一个名为scripts的目录,那么include将是

<script src="/scripts/main.js"></script>

表示相对路径(假设您的html页面位于根级别,脚本作为子目录)或者,以防您在没有本地服务器的情况下进行本地测试

<script src="scripts/main.js"></script>

请务必使用jquery函数包含您的jquery 之前的版本,包括javascript文件。
您还可以将脚本部分包含在html页面中(也包含在jquery之后)作为内联脚本:<script> /* your code */ </script>。为了完整性 - 因为我不知道有问题的HTML(如果它是HTML5或HTML4) - 可能需要将type属性添加到script标记:<script type="text/javascript">这适用包含js-file的脚本标记以及在线脚本的脚本标记。 type属性在HTML5中是可选的,但在HTML4中是必需的。

同样为了完整性:您还可以考虑在结束body标记之前包含脚本而不是在head部分中 - 详细说明为什么在标题中包含css以及最后js可以更好在这里找到:Where to place Javascript in a HTML file?

有关内联脚本与外部脚本文件的问题的进一步参考:When should I use Inline vs. External Javascript?

问题2:否。有一个javascript函数resizeTo() - 称为例如window.resizeTo(400,400) - 这使得可以调整浏览器窗口的大小,但出于好的理由,默认情况下已被许多浏览器禁用。参考例如在这里:The javascript "resizeTo" function not working in Chrome and Opera和此处:http://kb.mozillazine.org/Resizing_oversize_window#JavaScript_no_longer_allowed_to_resize_windows__through_the_Location_Bar。你可以用例如换一个面具 - 可能你已经在许多页面上看过这个,例如当图像/幻灯片/视频等显示在模态窗口中时,模态窗口下方的页面覆盖有灰色透明div。就像一个非常简化的Fiddle例子。单击横幅时,将隐藏横幅和蒙版。小提琴中的jquery代码已经在加载小提琴时执行,并且可以在$( document ).ready(function() {}中包含,以便在加载jquery时将其执行以将蒙版的高度设置为文档高度:

$(document).ready(function() {
  $("#banner").on("click", function() {
    $("#banner, #mask").hide();
  });
  $('#mask').height($(document).height());
});

作为参考,因为这只是一种可能的方法来设置遮罩以覆盖屏幕(在小提琴中使用额外的CSS,例如将遮罩的宽度设置为100%),您可以在此处检查以下几种方法:How to make a div 100% of page (not screen) height?

问题3:在上面的小提琴中使用了几种显示div居中的解决方案之一。您可以查看此处提供的各种解决方案:Using jQuery to center a DIV on the screen