当我打开模态窗口时,页面向下滚动

时间:2017-05-08 19:28:40

标签: html css modal-dialog bootstrap-modal

我有一个很长的页面,上面有几个打开模态窗口的锚标签。 (a href #

当我点击它时,模态窗口打开,背景主页面向下滚动一点。当我关闭模态窗口时,它会向上滚动一点,但不会向上滚动。这会导致糟糕的用户体验。

在没有滚动条的页面上打开模态很好。

我已经研究了各种解决方案,但没有任何解决方案适合我。



.modal {
    display: none; /* Hidden by default */
    position: absolute; /* Stay in place */
    z-index: 1; /* Sit on top */
    padding-top: 100px; /* Location of the box */
    left: 0;
    top: 0;
	    overflow-y: auto;
    width: 100%; /* Full width */
    overflow: auto; /* Enable scroll if needed */
    background-color: rgb(0,0,0); /* Fallback color */
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
	font-family: 'Georgia', monospace, serif;
}





/* Modal Content */
.modal-content {
    position: relative;
    background-color: #fefefe;
    margin: auto;
    padding: 0;
    font-family: 'Georgia', monospace, serif;
    border: 1px solid #888;
    width: 400px;

    box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);

}
.modal-header {
    padding: 2px 16px;
    background-color: black;
    color: white;
    font-family: 'Georgia', monospace, serif;
}


 /* Behaviour on legacy browsers */
.target:target + .modal {
    display: block;
}

/* Fallback for IE8 */
.modal.is-expanded {
   display: block;
}
.modal.is-expanded > .content {
  top: 50%;
  margin-top: -45px;
}



/* Behavior on modern browsers */
:root .modal {
  display: block;
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
  transition: transform 0.3s cubic-bezier(0.5, -0.5, 0.5, 1.5);
  transform-origin: center center;
  transform: scale(0, 0);
}
:root .modal > .content {
  box-shadow: 0 5px 20px rgba(0,0,0,0.5);
}
:root .target:target + .modal {
  transform: scale(1, 1);
}

/* The Close Button */

.close-btn:hover,
.close-btn:focus {
    cursor: pointer;
}
 .modal > .modal-content .modal-header .close-btn {
   position: absolute;
    top: 18px;
    right: 18px;
    width: 15px;
    height: 15px;
    color: white;
    font-size: 18px;
    text-decoration: none;
 }

 .modal-body {padding: 2px 16px;}
 
 .modal-open {
  -moz-appearance: menuimage;
}

.modal-open::-webkit-scrollbar {
   width: 0 !important;
}

<span id="start" class="target"><!-- Hidden anchor to close all modals --></span>
    <span id="userinfo" class="target"><!-- Hidden anchor to open adjesting modal container--></span>
	
    <div class="modal">
      <div class="modal-content">
<div class="modal-header">

      <h2>User Info</h2>
	  <a class="close-btn" href="#start" ><i class="fa fa-times"></i></a>

		    </div>
			    <div class="modal-body">
content....
    </div>
      </div>
    </div>
	<a href="#userinfo"><i class="fa fa-user fa-lg"></i></a>
&#13;
&#13;
&#13;

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。它并不流畅,因为您可以看到滚动条如何上下移动几毫秒,但背景页面至少保持在顶部

这对我有用:

<script>
$(document).ready(function () {

$(window).on('hashchange', function (event) {
window.scrollTo(0, 0);
});

});
</script>