回答編集履歴

1

コード追記

2020/02/25 02:22

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -5,3 +5,125 @@
5
5
  `display='none'`はOn/Offの2つの状態しかないのでアニメーションはしません。
6
6
 
7
7
  これを削除すればアニメーションするようになります。
8
+
9
+
10
+
11
+ ---
12
+
13
+ 質問内容とは外れますが、
14
+
15
+ スクリプトをボタンは別箇所、メニューはインラインというように分けるのは管理上好ましくないです。
16
+
17
+ 同じ個所に統一して記述したほうが管理しやすいですよね。
18
+
19
+ また、どちらも同じ開閉処理なのでまとめて記述できます。
20
+
21
+
22
+
23
+ あと、Classの存在をチェックしていますが、`toggleClass`自体が存在チェックしてますので不要ですね。
24
+
25
+
26
+
27
+ CSSもインラインと混在してますが、これもCSSファイルにまとめて、HTMLはなるべくシンプルにした方がいいでしょう。
28
+
29
+
30
+
31
+ ```html
32
+
33
+ <input id="m" type="button" value="メニューを開く">
34
+
35
+
36
+
37
+ <div id="menu" class="boxp">
38
+
39
+ <div>コンテンツ1</div>
40
+
41
+ <div>コンテンツ2</div>
42
+
43
+ <div>コンテンツ3</div>
44
+
45
+ </div>
46
+
47
+ ```
48
+
49
+ ```css
50
+
51
+ .boxp{
52
+
53
+ opacity: 0;
54
+
55
+ width: 0%;
56
+
57
+ height: 70%;
58
+
59
+ bottom: 0%;
60
+
61
+ transition: 1s;
62
+
63
+ }
64
+
65
+ .boxp.on{
66
+
67
+ opacity: 1;
68
+
69
+ width: 100%;
70
+
71
+ height: 70%;
72
+
73
+ background-color: black;
74
+
75
+ bottom: 0%;
76
+
77
+ }
78
+
79
+ #menu {
80
+
81
+ position: fixed;
82
+
83
+ z-index: 1;
84
+
85
+ }
86
+
87
+ #menu>div {
88
+
89
+ float:left ;
90
+
91
+ width: 33%;
92
+
93
+ height: 100%;
94
+
95
+ }
96
+
97
+ #menu>div:nth-child(1) {
98
+
99
+ background-color:red;
100
+
101
+ }
102
+
103
+ #menu>div:nth-child(2) {
104
+
105
+ background-color:green;
106
+
107
+ }
108
+
109
+ #menu>div:nth-child(3) {
110
+
111
+ background-color:blue;
112
+
113
+ }
114
+
115
+ ```
116
+
117
+ ```jquery
118
+
119
+ $(document).ready(function () {
120
+
121
+ $("#m, #menu").on("click", function(){
122
+
123
+ $("#menu").toggleClass("on");
124
+
125
+ });
126
+
127
+ })
128
+
129
+ ```