如何使横幅关闭功能在前面的回答中发挥作用
How do I get the banner close function to work in this previous answer?
David Thomas之前回答了这个关于超级横幅的问题,默认情况下,访问者在查看主页内容之前会查看这些横幅。
将一个条幅div叠加在另一个div上,如果可能的话,使用jQuery
我已经尽我所能进行了编码,它在一定程度上起作用,但也有几个问题,完全是因为我对这些事情的了解很低!
1) X关闭不起作用,但它不会起作用,因为我还没有把JSQuery部分放在任何地方——它去了哪里——JS有一个单独的文件吗(在这种情况下,你如何在html中引用它?),或者它和CSS等一起放在标题中?抱歉问了这个愚蠢的问题
2) 我的条幅只有250像素高,但下面的内容有好几段长——内容被条幅隐藏了(我选择了白色背景,因为条幅本身是白色的),但页脚就在页面的底部,在内容结束的地方,所以有一个很大的缺口,看起来有点垃圾。我可以让页面只显示实际高度的横幅吗?然后当它关闭时,页面会扩展到显示内容的样子?非技术术语我知道但不知道;我不知道该怎么解释。。。
3) 我的横幅没有覆盖内容的整个宽度,所以我可以将其居中,而不是将其放置在0,0处吗?
非常感谢Claire
问题1:您可以将jquery代码复制到一个单独的文件中,例如main.js
,并使用将其包含在html页面的头部
<script src="main.js"></script>
以防该文件位于您的html页面旁边。更好的做法是为css、脚本和图像使用单独的文件夹,因此,例如,如果您有一个名为scripts
的目录,则包含
<script src="/scripts/main.js"></script>
相对路径(假设您的html页面位于根级别,脚本作为子目录),或者,如果您在没有本地服务器的情况下进行本地测试
<script src="scripts/main.js"></script>
在包含使用jquery函数的javascript文件之前,请确保包含您的jquery版本
您还可以将脚本部分作为内联脚本<script> /* your code */ </script>
包含在html页面中(也可以在包含jquery之后)。为了完整性——因为我不知道有问题的html(如果是HTML5或HTML4)——可能有必要将type
属性添加到script
标记:<script type="text/javascript">
这适用于包括js文件在内的脚本标记以及在线脚本的脚本标记。type属性在HTML5中是可选的,但在HTML4中是强制性的。
同样为了完整性:您也可以考虑在关闭body
标记之前包含脚本,而不是在标题部分中包含脚本-可以在这里找到为什么在标题中包含css和在末尾包含js更好的详细解释:在HTML文件中放置Javascript的位置?
关于内联脚本与外部脚本文件问题的进一步参考:我什么时候应该使用内联与外部Javascript?
问题2:否。有一个javascript函数resizeTo()
(如window.resizeTo(400,400)
)可以调整浏览器窗口的大小,但出于充分的原因,许多浏览器默认禁用了该功能。参考,例如这里:javascript";resizeTo";功能在Chrome和Opera中不起作用,此处:http://kb.mozillazine.org/Resizing_oversize_window#JavaScript_no_longer_allowed_to_resize_windows__through_the_Location_Bar.你可以使用例如掩码-可能你已经在很多页面上看到过这种情况,例如,当图像/幻灯片/视频等显示在模式窗口中时,模式窗口下方的页面覆盖着一个灰色透明的div.例如,一个非常简化的Fiddle。单击横幅时,横幅和遮罩都将被隐藏。Fiddle中的jquery代码在加载Fiddle时已经执行,并且可以使用封装在$( document ).ready(function() {}
中的代码在加载jquery时执行,以将掩码的高度设置为文档高度:
$(document).ready(function() {
$("#banner").on("click", function() {
$("#banner, #mask").hide();
});
$('#mask').height($(document).height());
});
作为参考,因为这只是一种可能的方法来设置掩码以覆盖屏幕(在Fiddle中使用额外的CSS将掩码的宽度设置为100%),你可以在这里检查几种方法:如何使div的高度为页面(而不是屏幕)的100%?
问题3:在上面的Fiddle中使用了显示以div为中心的几个解决方案之一。您可以查看这里提供的各种解决方案:使用jQuery在屏幕上居中显示DIV
- 下拉列表在使用z索引放置在前面后停止工作
- Node.js-等待process.exit()在前面的代码完成后执行
- JavaScript: 变量赋值 in for 语句 |在前面或里面
- 在前面的输入元素之前添加html输入元素
- 如何全局替换不在前面加[字符]的字符
- ExtJS面板总是“在前面”/总是“在上面”
- button.click仅在前面有警告的情况下执行
- 当
不在前面时查找文本
- 虽然循环不起作用(在其他类似问题中找不到答案)
- Javascript按钮在IE中不起作用;在其他浏览器中工作
- Browserify - 在 package.json 中转换在符号链接模块中不起作用在 npm3 中
- 模态在IE9中不起作用 - 在打开开发人员工具时,它可以正常工作
- 如何防止作用在 html 锚点上的 JS 插件跳到顶部
- 防止在前面添加某些内容时自动滚动
- 锚标记中的Javascript在FireFox和IE中不起作用.在Chrome中工作
- 如何防止 jQuery 函数在前面的函数失败时不运行
- window.getSelection不起作用在IE11中不起作用
- Javascript点击功能不起作用.在输出中显示错误 [对象对象]
- 表单字段输入编号通过在前面添加零来自动转换为 3 位数字
- 如何使横幅关闭功能在前面的回答中发挥作用