Prevent CSS Modal from scrolling to top

只谈情不闲聊 提交于 2019-12-25 02:53:28

问题


I am using a CSS Modal (no jQuery and I didn't write the code - person that did hasn't responded to source in years, assuming I won't get a response there. I wish to know if there is a way to prevent it from going to the top of the page.

<style type="text/css">
.modalDialog<?php echo $photoID; ?> {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.8);
z-index: 99999;
opacity:0;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
pointer-events: none;
}

.modalDialog<?php echo $photoID; ?>:target {
opacity:1;
pointer-events: auto;
}

.modalDialog<?php echo $photoID; ?> > div {
width: 400px;
position: relative;
margin: 10% auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #fff;
background: -moz-linear-gradient(#fff, #999);
background: -webkit-linear-gradient(#fff, #999);
background: -o-linear-gradient(#fff, #999);
}

.close<?php echo $photoID; ?> {
background: #bb0000;
color: #FFFFFF;
line-height: 25px;
position: absolute;
right: 4px;
text-align: center;
top: 4px;
width: 24px;
text-decoration: none;
font-weight: bold;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
border-radius: 12px;
-moz-box-shadow: 1px 1px 3px #000;
-webkit-box-shadow: 1px 1px 3px #000;
box-shadow: 1px 1px 3px #000;
}

.close<?php echo $photoID; ?>:hover { background: #00d9ff; }
</style>

<div id="openModal<?php echo $photoID; ?>" class="modalDialog<?php echo     $photoID; ?>">
<div>
<a href="#close" title="Close" class="close<?php echo $photoID; ?>">X</a>
    <h2>Modal Box</h2>
    <img src="/images/<?php echo $memberID.'/'.$album.'/'.$photo; ?>">  </center><p style=\"text-align:center\"><?php echo $description; ?></p></p>
</div>
</div>

Much help is greatly appreciated. Thank you and have a Happy Easter! :)


回答1:


Without looking at the rest of your code, I suspect this behaviour is caused by an href="#" attribrute in the click origin. You could try and remove the tag but style it so it has a cursor: pointer and other styling that makes it look clickable to the user. You could use a css class (i.e. 'clickable') for that.

Edit: perhaps you can provide some information on how your layout is setup and when this behaviour occurs exactly, so we can offer more effective help.



来源:https://stackoverflow.com/questions/29458853/prevent-css-modal-from-scrolling-to-top

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!