transition
プロパティは遷移効果に関する一括指定プロパティであるため、要素の移動とは関係がありません。そのアニメーションではメニューの移動に transform
プロパティを使用しています。そのため、要素の移動方向に関しては、以下のように SCSS を修正することで左から右への移動に変更することが出来ます (動作確認用リンク)。
SCSS
1.drawer-list {
2 position: fixed;
3 right: 0;
4 top: 0;
5 height: 100vh;
6 width: 100vw;
7 transform: translate(-100vw, 0); /* 変更 */
8 /* ie workaround */
9 -ms-transform: translatex(-100vw);
10 box-sizing: border-box;
11 pointer-events: none;
12 padding-top: 125px;
13 transition: width 475ms ease-out, transform 450ms ease, border-radius .8s .1s ease;
14 border-bottom-left-radius: 100vw;
15 @include alpha-attribute('background-color', rgba($contrast, 0.8), white);
16 @media (min-width: 768px) {
17 width: 40vw;
18 }
19 ul {
20 height: 100%;
21 width: 100%;
22 margin: 0;
23 padding: 0;
24 overflow: auto;
25 overflow-x: hidden;
26 pointer-events: auto;
27 }
28 li {
29 list-style: none;
30 text-transform: uppercase;
31 pointer-events: auto;
32 white-space: nowrap;
33 box-sizing: border-box;
34 transform: translatex(100vw);
35 /* ie workaround */
36 -ms-transform: translatex(-100vw);
37 &:last-child {
38 margin-bottom: 2em;
39 }
40 a {
41 text-decoration: none;
42 color: $text;
43 text-align: center;
44 display: block;
45 padding: 1rem;
46 font-size: calc(24px - .5vw);
47 @media (min-width: 768px) {
48 text-align: right;
49 padding: .5rem;
50 }
51 &:hover {
52 cursor: pointer;
53 @include alpha-attribute('background-color', rgba($main, 0.5), white);
54 }
55 }
56 }
57}
また、メニューの開閉時アニメーションには border-bottom-left-radius
プロパティを使用しているため、これのアニメーションが行われる角を右側へ変更したい場合には、プロパティを border-bottom-right-radius
プロパティへ変更すれば良いです。文字の移動方向もメニューの移動と同様に transform
プロパティで制御されているため、これの動作を変更したい場合には transform
プロパティを変更すれば良いことになります。この二点を追加で修正すると、以下のようになります (動作確認用リンク)。
SCSS
1.drawer-list {
2 position: fixed;
3 right: 0;
4 top: 0;
5 height: 100vh;
6 width: 100vw;
7 transform: translate(-100vw, 0);
8 /* ie workaround */
9 -ms-transform: translatex(-100vw);
10 box-sizing: border-box;
11 pointer-events: none;
12 padding-top: 125px;
13 transition: width 475ms ease-out, transform 450ms ease, border-radius .8s .1s ease;
14 border-bottom-right-radius: 100vw; /* 変更 */
15 @include alpha-attribute('background-color', rgba($contrast, 0.8), white);
16 @media (min-width: 768px) {
17 width: 40vw;
18 }
19 ul {
20 height: 100%;
21 width: 100%;
22 margin: 0;
23 padding: 0;
24 overflow: auto;
25 overflow-x: hidden;
26 pointer-events: auto;
27 }
28 li {
29 list-style: none;
30 text-transform: uppercase;
31 pointer-events: auto;
32 white-space: nowrap;
33 box-sizing: border-box;
34 transform: translatex(-100vw); /* 変更 */
35 /* ie workaround */
36 -ms-transform: translatex(-100vw);
37 &:last-child {
38 margin-bottom: 2em;
39 }
40 a {
41 text-decoration: none;
42 color: $text;
43 text-align: center;
44 display: block;
45 padding: 1rem;
46 font-size: calc(24px - .5vw);
47 @media (min-width: 768px) {
48 text-align: right;
49 padding: .5rem;
50 }
51 &:hover {
52 cursor: pointer;
53 @include alpha-attribute('background-color', rgba($main, 0.5), white);
54 }
55 }
56 }
57}
58
59input.hamburger {
60 display: none;
61 &:checked {
62 & ~ .drawer-list {
63 transform: translatex(0);
64 border-bottom-right-radius: 0; /* 変更 */
65 li {
66 transform: translatex(0);
67 @include transition;
68 a {
69 padding-right: 15px;
70 }
71 }
72 }
73 & ~ label {
74 > i {
75 background-color: transparent;
76 transform: rotate(90deg);
77 &:before {
78 transform: translate(-50%, -50%) rotate(315deg);
79 }
80 &:after {
81 transform: translate(-50%, -50%) rotate(-315deg);
82 }
83 }
84 close {
85 color: $text;
86 width: 100%;
87 }
88 open {
89 color: rgba(0, 0, 0, 0);
90 width: 0;
91 }
92 }
93 }
94}