如何通过在灯箱外单击或在与图像贴图组合时点击esc退出灯箱
How to exit lightbox by clicking outside the box or hitting esc when combined with an image map
我已经将这个灯箱代码改编为我正在处理的一个涉及图像映射的项目。这是我的项目中的样子,我为每个区域元素都有这个,这样点击每个元素就会打开一个不同的灯箱:
<body>
<center><img src="Slides/Slide2.jpg" style="width:100%; height:auto;" alt="" USEMAP="#Map"></center>
<map name="Map" id="Map">
<div id="grayBG" class="grayBox" style="display:none;"></div>
<div id="LightBox1" class="box_content" style="display:none;">
<table cellpadding="3" cellspacing="0" border="0">
<tr align="left" style="height: 100%; width: 100%;">
<td colspan="2" bgcolor="#FFFFFF" style="padding:10px;"><div onclick="displayHideBox('1'); return false;" style="cursor:pointer;" align="right">
<div>X</div>
<object type="text/html" data="Content/2-1.html" style="height: 400px; width: 600px;"></object>
</div>
<area alt="" title="" href="#" shape="poly" coords="145,365,540,365,540,430,144,430" onclick="displayHideBox('1'); return false;"/></td>
</tr>
</table>
</div>
</map>
我使用的Javascript代码与上面链接的网站相同,为了方便起见,我将其放在这里:
<script type="text/javascript" language="javascript">
/* Superior Web Systems */
function displayHideBox(boxNumber)
{
if(document.getElementById("LightBox"+boxNumber).style.display=="none") {
document.getElementById("LightBox"+boxNumber).style.display="block";
document.getElementById("grayBG").style.display="block";
} else {
document.getElementById("LightBox"+boxNumber).style.display="none";
document.getElementById("grayBG").style.display="none";
}
}
</script>
我目前只能通过点击灯箱角落的"X"退出灯箱。我想通过点击框外的任何地方或点击esc键来退出它。
if(document.getElementById("LightBox"+boxNumber).style.display=="none") {
document.getElementById("LightBox"+boxNumber).style.display="block";
document.getElementById("grayBG").style.display="block";
} else {
var currentLightbox = document.getElementById('LightBox' + boxNumber);
if (!currentLightbox.is(e.target) // if the target of the click isn't the container...
&& currentLightbox.has(e.target).length === 0) // ... nor a descendant of the container
|| e.keyCode == 27 // if the user presses esc
{
document.getElementById("LightBox"+boxNumber).style.display="none";
document.getElementById("grayBG").style.display="none";
}
}
这部分应该与else语句一起放在小节中。如果有帮助,请告诉我:)
相关文章:
- 根据id将json数组组合为一个json数组
- 接受不在列表中的值-引导组合框
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 组合两个javascript函数
- Telerik rad组合框多列数据绑定
- 组合 2 个 JavaScript .scroll 函数
- 如何使用jquery组合两个数组
- onChange不足以从Dojo组合框触发查询
- 组合承诺和非承诺值
- 所有控件的组合框
- 在D3中组合多个事件
- AngularJS-如何只对多个事件的组合采取行动
- 如何在服务、技能、投资组合等方面添加滑动效果
- 以编程方式填充组合框道场 (1.8) 的最佳方法是什么?
- 如何在谷歌可视化中组合数字和模式格式化程序
- 更改组合框分页后,getValue和getRawValue返回相同的值
- 类型错误:url未定义extjs 4正在填充组合框
- 我该如何组合这两个Greasemonkey脚本
- Jqgrid动态组合框填充不起作用
- 如何通过在灯箱外单击或在与图像贴图组合时点击esc退出灯箱