teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2021/12/29 12:23

投稿

umau
umau

スコア831

answer CHANGED
@@ -9,4 +9,258 @@
9
9
  $(".line").removeClass('_open');
10
10
 
11
11
  ...
12
+ ```
13
+
14
+ ---
15
+ (追記)こちらで動いたソース一式貼っておきます。(cssは全く触ってません)
16
+ ```html
17
+ <!DOCTYPE html>
18
+ <html>
19
+ <head>
20
+ <title></title>
21
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
22
+ <link href="./hoge.css" rel="stylesheet">
23
+ <script src="./hoge.js"></script>
24
+
25
+ </head>
26
+
27
+ <body>
28
+ <header class="header">
29
+ <div class="header-inner">
30
+ <div class="header-left">
31
+ <h1>aaa</h1>
32
+ <!-- <h1 class="logo"><a href="#"><img alt="" class="header-logo" src="./asserts/img/top-header-logo.png"></a></h1> -->
33
+ <nav class="nav drawer-nav">
34
+ <ul class="header-list">
35
+ <li class="header-item">
36
+ <a href="./Room/room.html">お部屋</a>
37
+ </li><!-- /.header-item -->
38
+ <li class="header-item">
39
+ <a href="./Menu/menu.html">お料理</a>
40
+ </li><!-- /.header-item -->
41
+ <li class="header-item">
42
+ <a href="./Onsen/onsen.html">温泉</a>
43
+ </li><!-- /.header-item -->
44
+ </ul><!-- /.header-list -->
45
+ </nav><!-- /.nav -->
46
+ </div>
47
+ <div class="header-right">
48
+ <div class="header-link" id="js-modal">
49
+ <a class="calender-link js-modal-open" href="#"><!-- <img src="./img/calender.png" alt="カレンダー"> -->
50
+ 宿泊予約</a>
51
+ </div><!-- /.header-link -->
52
+ <button aria-controls="js-glabal-menu" aria-expanded="false" class="humburger" id="js-humburger" type="button"><span class="line"></span><span class="line"></span><span class="line"></span></button>
53
+ </div><!-- /.header-right -->
54
+ </div><!-- /.header-inner -->
55
+ </header><!-- /.header -->
56
+ <div class="overlay"></div><!-- /.overlay -->
57
+ </body>
58
+ </html>
59
+ ```
60
+ ```javascript
61
+ $(function(){
62
+
63
+ $(".humburger").on('click', function(){
64
+
65
+ if($(this).hasClass('_active')){
66
+
67
+ $(this).removeClass('_active');
68
+ $(".line").removeClass('_open');
69
+ $("nav").removeClass("nav-open");
70
+ // $(".drawer-nav").removeClass('_active');
71
+ $('.overlay').removeClass('_open');
72
+ $('html').removeClass('scroll-prevent') // 追記
73
+
74
+ } else {
75
+ $(this).addClass('_active');
76
+
77
+ $('.line').addClass('_open');
78
+ $("nav").addClass("nav-open");
79
+
80
+ $('.overlay').addClass('_open');
81
+ $('html').toggleClass('scroll-prevent') // 背景を固定
82
+ }
83
+ });
84
+
85
+ $('.overlay').on('click',function(){
86
+
87
+ if($(this).hasClass('_open')){
88
+
89
+ $(this).removeClass('_open');
90
+ $('.humburger').removeClass('_active');
91
+ $('.line').removeClass('_open');
92
+
93
+ $("nav").removeClass('nav-open');
94
+ $('html').removeClass('scroll-prevent') // 追記
95
+ // $('.drawer-nav').removeClass('_active');
96
+
97
+ }
98
+ });
99
+
100
+ $('.humburger_active').on('click',function(){
101
+
102
+ if($(this).hasClass('_active')){
103
+
104
+ $(this).removeClass('_active');
105
+ $('.line').removeClass('_open');
106
+
107
+ $("nav").removeClass('nav-open');
108
+ $('.overlay').removeClass('_open');
109
+ $('html').removeClass('scroll-prevent') // 追記
110
+ // $('.drawer-nav').removeClass('_active');
111
+ }
112
+ });
113
+
114
+
115
+ });
116
+ ```
117
+
118
+ ```css
119
+ .header-left .nav {
120
+ display: -webkit-box;
121
+ display: -webkit-flex;
122
+ display: -ms-flexbox;
123
+ display: flex;
124
+ -webkit-box-pack: justify;
125
+ -webkit-justify-content: space-between;
126
+ -ms-flex-pack: justify;
127
+ justify-content: space-between;
128
+ -webkit-box-align: center;
129
+ -webkit-align-items: center;
130
+ -ms-flex-align: center;
131
+ align-items: center;
132
+ margin-left: 120px;
133
+ }
134
+
135
+ .header-left .nav-open {
136
+ -webkit-transform: translateZ(0);
137
+ transform: translateZ(0);
138
+ }
139
+
140
+ @media screen and (min-width: 600px) and (max-width: 1179px) {
141
+ .header-left .nav {
142
+ top: 80px;
143
+ position: fixed;
144
+ top: 150px;
145
+ right: 0;
146
+ z-index: 10;
147
+ overflow: hidden;
148
+ width: 16.25rem;
149
+ background-color: #000;
150
+ width: 50%;
151
+ height: 60vh;
152
+ -webkit-transform: translate(550px);
153
+ transform: translate(550px);
154
+ -webkit-transition: .5s;
155
+ transition: .5s;
156
+ }
157
+ .header-left .nav-open {
158
+ -webkit-transform: translateZ(0);
159
+ transform: translateZ(0);
160
+ }
161
+ }
162
+
163
+ @media screen and (max-width: 599px) {
164
+ .header-left .nav {
165
+ top: 60px;
166
+ position: fixed;
167
+ z-index: 2;
168
+ overflow: hidden;
169
+ width: 16.25rem;
170
+ background-color: rgba(0, 0, 0, 0.9);
171
+ width: 75%;
172
+ -webkit-transform: translate(550px);
173
+ transform: translate(550px);
174
+ -webkit-transition: margin-left .5s;
175
+ transition: margin-left .5s;
176
+ }
177
+ .header-left .nav-open {
178
+ -webkit-transform: translateZ(0);
179
+ transform: translateZ(0);
180
+ }
181
+ }
182
+
183
+ .header-left .nav .header-list {
184
+ display: -webkit-box;
185
+ display: -webkit-flex;
186
+ display: -ms-flexbox;
187
+ display: flex;
188
+ -webkit-box-align: center;
189
+ -webkit-align-items: center;
190
+ -ms-flex-align: center;
191
+ align-items: center;
192
+ padding-top: 20px;
193
+ padding-bottom: 20px;
194
+ }
195
+
196
+ @media screen and (min-width: 600px) and (max-width: 1179px) {
197
+ .header-left .nav .header-list {
198
+ display: -webkit-box;
199
+ display: -webkit-flex;
200
+ display: -ms-flexbox;
201
+ display: flex;
202
+ -webkit-box-orient: vertical;
203
+ -webkit-box-direction: normal;
204
+ -webkit-flex-direction: column;
205
+ -ms-flex-direction: column;
206
+ flex-direction: column;
207
+ margin: 100px;
208
+ text-align: center;
209
+ padding-left: 40px;
210
+ }
211
+ }
212
+
213
+ @media screen and (max-width: 599px) {
214
+ .header-left .nav .header-list {
215
+ margin-right: 30px;
216
+ }
217
+ }
218
+
219
+ .header-left .nav .header-list .header-item {
220
+ color: #fff;
221
+ }
222
+
223
+ @media screen and (min-width: 600px) and (max-width: 1179px) {
224
+ .header-left .nav .header-list .header-item {
225
+ padding-left: 20px;
226
+ }
227
+ }
228
+
229
+ @media screen and (max-width: 599px) {
230
+ .header-left .nav .header-list .header-item {
231
+ padding: 0px;
232
+ font-size: 2rem;
233
+ }
234
+ }
235
+
236
+ .header-left .nav .header-list .header-item + .header-item {
237
+ padding-left: 30px;
238
+ }
239
+
240
+ @media screen and (min-width: 600px) and (max-width: 1179px) {
241
+ .header-left .nav .header-list .header-item + .header-item {
242
+ padding-left: 0px;
243
+ }
244
+ }
245
+
246
+ @media screen and (max-width: 599px) {
247
+ .header-left .nav .header-list .header-item + .header-item {
248
+ padding-left: 0px;
249
+ }
250
+ }
251
+
252
+ .header-left .nav .header-list .header-item > a {
253
+ color: #fff;
254
+ display: inline-block;
255
+ -webkit-transition: .3s;
256
+ transition: .3s;
257
+ /* 0.3秒で拡大までの時間 */
258
+ }
259
+
260
+ @media screen and (min-width: 600px) and (max-width: 1179px) {
261
+ .header-left .nav .header-list .header-item > a {
262
+ padding-bottom: 65px;
263
+ font-size: 2.4rem;
264
+ }
265
+ }
12
266
  ```