powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Поведение элемента при скроле страницы
1 сообщений из 1, страница 1 из 1
Поведение элемента при скроле страницы
    #39495853
Не получается решить задачу, с данным кодом.
Нужно, чтобы элемент <span class="openclosebtn">☰ open</span> при скроле страницы, в случае появления полосы прокрутки при заполнении страницы контентом оставался на месте (fixed), но вместе с тем, при клике, чтобы вёл себя как <main> и его содержимое, то есть по клику смещался в право и по клику возвращался на место. У меня ничего не выходит, не понимаю, как это сделать. Эксперименты по наитию ничего не дали.
Ребят, кто опытные, покажите пожалуйста решение. Спасибо.

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
<!DOCTYPE html>
<html>
<head>
<style>
body {
    font-family: "Lato", sans-serif;
    position: relative;
}
 
.sidenav {
    height: 100%;
    width: 0;
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    background-color: #111;
    overflow-x: hidden;
    transition: 0.5s;
    padding-top: 60px;
}
 
.sidenav a {
    padding: 8px 8px 8px 32px;
    text-decoration: none;
    font-size: 25px;
    color: #818181;
    display: block;
    transition: 0.3s;
}
 
.sidenav a:hover, .offcanvas a:focus{
    color: #f1f1f1;
}
 
.sidenav .closebtn {
    position: absolute;
    top: 0;
    right: 25px;
    font-size: 36px;
    margin-left: 50px;
}
 
#main {
    position: absolute;
    left: 0px;
    transition: left .5s;
    padding: 16px;
}
 
@media screen and (max-height: 450px) {
  .sidenav {padding-top: 15px;}
  .sidenav a {font-size: 18px;}
}
.sidenav.open {
   width: 250px
}
.sidenav.open ~ #main{
  left:250px;
}
.openclosebtn{
   font-size:30px;cursor:pointer
}
 
</style>
</head>
<body>
 
<div id="mySidenav" class="sidenav">
  <a href="#" class="closebtn" >&#215;</a>
  <a href="#">About</a>
  <a href="#">Services</a>
  <a href="#">Clients</a>
  <a href="#">Contact</a>
</div>
 
<div id="main">
  <h2>Sidenav Push Example</h2>
  <p>Click on the element below to open the side navigation menu, and push this content to the right.</p>
  <span class="openclosebtn">☰ open</span>
</div>
<script src="https://cdn.polyfill.io/v1/polyfill.js?Element.prototype.closest"></script>
<script>
window.addEventListener('DOMContentLoaded', function() {
  var sidenav = document.querySelector('.sidenav');
  document.addEventListener("click", function(event){
          var target = event.target;
          if( target.closest(".sidenav") && !target.closest(".closebtn")) return;
          else if(target.closest(".openclosebtn")) {event.preventDefault();
          sidenav.classList.toggle("open")}
          else sidenav.classList.remove("open");
      });
   });
 
</script>
 
</body>
</html>
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Поведение элемента при скроле страницы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]