我并不精通JS,但我正在尝试将一个简单的投资组合网站放在一起,用黑色透明div作为灯箱。我正在使用CSS和JS来切换这个div,但是在一个长滚动页面上,它会在打开时跳到顶部。这是我的CSS:
<style type="text/css">
div.transbox{
width:100%;
height:100%;
margin:0px 0px;
position:fixed;
background-color:#000000;
background:rgba(0,0,0,0.75);
z-index:99;
}
p.ptransbox{
width:400px;
padding:5px;
position:relative;
background:rgba(255,255,255,0.5);
color:#000;
border-radius:5px;
}
img.itransbox{
padding:10px;
position:relative;
background:rgba(255,255,255,0.5);
border-radius:5px;
}
这是JS:
var toggle2 = function() {
var mydiv = document.getElementById('02');
if (mydiv.style.display === 'none' || mydiv.style.display === '')
mydiv.style.display = 'block';
else
mydiv.style.display = 'none'
}
这是可立即查看的代码,作为打开div(切换开启)的链接:
<td style="float:left; width: 33%" class="school">
<a title="Girl in Chair, 2012" class="tooltip" href="#" onclick="toggle2();" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image2','','images/thumbs/chairO.png',1)">
<img src="images/thumbs/chair.png" id="Image2" /></a>
这是带来“灯箱”的代码,可以选择将其关闭:
<a href="#" onclick="toggle2();">
<div align="center" id="02" class="transbox" style="display: none;">
<p><img class="itransbox" src="images/anti-thumbs/chair.jpg" /></p>
<p class="ptransbox"><strong>Wörner Hall</strong>, 2010</p></div></a>
请忽略所有标题,副本或任何仅与内容相关的内容。您可以在此处查看我的投资组合:http://www.student.nvcc.edu/home/majeffers3/如果您注意到,当您滚动到底部并单击某个项目时,它会将您跳到顶部。我一直是潜伏者,我第一次发布一个问题,因为我似乎无法找到解决方案。非常感谢你的帮助!
答案 0 :(得分:2)
您需要阻止在单击链接时发生默认操作。最简单的方法是从false
处理程序返回onclick
:
<a title="Girl in Chair, 2012" class="tooltip" href="#" onclick="toggle2(); return false;" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image2','','images/thumbs/chairO.png',1)">
答案 1 :(得分:1)
请从href="#"
更改为href="javascript:;"
。单击时只需转到“#”链接。
答案 2 :(得分:0)
确保从onclick处理程序返回false。如果不这样做,超链接的默认操作就会启动,这意味着您将导航到#,这意味着当前页面的顶部。