如何防止css div弹出回到页面顶部

时间:2013-08-20 13:43:37

标签: javascript css html

我并不精通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/如果您注意到,当您滚动到底部并单击某个项目时,它会将您跳到顶部。我一直是潜伏者,我第一次发布一个问题,因为我似乎无法找到解决方案。非常感谢你的帮助!

3 个答案:

答案 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。如果不这样做,超链接的默认操作就会启动,这意味着您将导航到#,这意味着当前页面的顶部。

相关问题