#jquery #html #css
#jquery #HTML #css
Вопрос:
У меня есть элемент div с полупрозрачным изображением, положение: фиксированное, верх: 0, слева: 0 и высота: 100%. Под этим div у меня есть переменное количество элементов.
Когда количество элементов достаточно велико, отображаются полосы прокрутки браузера, но прокручивать элементы невозможно из-за фиксированного div «над» ними.
Как я мог бы сделать возможным прокрутку под фиксированным div?
Код:
CSS:
.vcBodyShadow{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background-color:rgba(128, 128, 128, 0.80);
z-index:1;
}
#VCBody{
position:relative;
height:100%;
width:100%;
overflow:auto;
}
.vcElementContainer {
display:flex;
align-items:center;
justify-content:space-around;
flex-wrap: wrap;
height: $height;
width:$width;
overflow:hidden;
position:relative;
z-index:2;
background-color:lighten($default_blue,44%) !important;
min-height:100px;
}
«.vcBodyShadow» — это фиксированный div с теневым изображением, которое будет отображаться поверх #VCBody.
«#VCBody» является основным контейнером.
«.vcElementContainer» — это контейнер элемента, который находится внутри #VCBody .
Элементы будут отображаться ПОВЕРХ тени и VCBody с другим HTML-кодом ПОД ним.
И Jquery, чтобы показать тень над «#VCBody» со всеми элементами:
$("#VCBody").prepend("<div class='vcBodyShadow'></div>");
HTML:
<html>
<body>
<div id="VCBody">
<div class="vcElementContainer"></div>
<div class="vcElementContainer"></div>
...
</div>
</body>
</html>
Комментарии:
1. И ваш код ???? … невозможно узнать, в чем проблема, без вашего кода. Это работает jsfiddle.net/fvushnho
2. Отображаются ли полосы прокрутки для элементов страницы или для всей страницы? Например, если полоса прокрутки находится на a
div
, а над ней установлен фиксированный div, вы не сможете сфокусировать div ниже — и, следовательно, вы не сможете прокручивать его. Однако фиксированный div высотой 100% и шириной 100% не должен прерывать прокрутку страницы .3. Да, полосы прокрутки соответствуют контейнеру div со всеми элементами. Я добавил некоторый код для лучшего объяснения.
Ответ №1:
У меня есть идея для вас, вместо того, чтобы размещать изображение над элементом, который вы хотите прокрутить, как насчет размещения его под ними с той же непрозрачностью.
Затем также измените непрозрачность прокручиваемых элементов. Это придаст ему видимость того, что он находится внизу.
Вы бы добавили:
$(document).ready(function(){
$(document).on('click', function(){
$('#VCBody').prepend('<div class="vcBodyShadow">3</div>');
$('.vcElementContainer').css('opacity','0.5');
});
});
.vcBodyShadow{
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
background-color: red;
z-index:1;
opacity: 0.5;
font-size: 100px;
font-weight: bold;
padding: 50px;
}
#VCBody{
position:relative;
height:100%;
width:100%;
overflow:auto;
}
.vcElementContainer {
display:flex;
align-items:center;
justify-content:space-around;
flex-wrap: wrap;
height: $height;
width:$width;
overflow:hidden;
position:relative;
z-index:2;
background-color:yellow;
min-height:100px;
margin:20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<body>
<div id="VCBody">
<div class="vcElementContainer">1</div>
<div class="vcElementContainer">2</div>
</div>
</body>
</html>
Комментарии:
1. Спасибо за идею. Внесение некоторых изменений в мой реальный код отлично сработало, и идея решает проблему заголовка вопроса,