.drawer { position: fixed; top: 0; width: 100%; height: 100%; z-index: 9999; pointer-events: none; } .drawer > * { transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), opacity 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86), box-shaow 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86); } .drawer-mask { background: #000; opacity: 0; width: 100%; height: 100%; position: absolute; top: 0; } .drawer-content-wrapper { position: absolute; } .drawer-content { background: #fff; overflow: auto; z-index: 1; position: relative; } .drawer-handle { position: absolute; top: 72px; width: 41px; height: 40px; cursor: pointer; pointer-events: auto; z-index: 0; text-align: center; line-height: 40px; font-size: 16px; display: -ms-flexbox; display: flex; -ms-flex-pack: center; justify-content: center; -ms-flex-align: center; align-items: center; background: #fff; } .drawer-handle-icon { width: 14px; height: 2px; background: #333; position: relative; transition: background 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86); } .drawer-handle-icon:before, .drawer-handle-icon:after { content: ''; display: block; position: absolute; background: #333; width: 100%; height: 2px; transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86); } .drawer-handle-icon:before { top: -5px; } .drawer-handle-icon:after { top: 5px; } .drawer-left .drawer-content-wrapper, .drawer-right .drawer-content-wrapper, .drawer-left .drawer-content, .drawer-right .drawer-content { height: 100%; } .drawer-left .drawer-handle { right: -40px; box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15); border-radius: 0 4px 4px 0; } .drawer-left.drawer-open .drawer-wrapper { box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15); } .drawer-right .drawer-content-wrapper { right: 0; } .drawer-right .drawer-handle { left: -40px; box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15); border-radius: 4px 0 0 4px; } .drawer-right.drawer-open .drawer-wrapper { box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15); } .drawer-top .drawer-content-wrapper, .drawer-bottom .drawer-content-wrapper, .drawer-top .drawer-content, .drawer-bottom .drawer-content { width: 100%; } .drawer-top .drawer-handle, .drawer-bottom .drawer-handle { left: 50%; margin-left: -20px; } .drawer-top .drawer-handle { top: auto; bottom: -40px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); border-radius: 0 0 4px 4px; } .drawer-top.drawer-open .drawer-wrapper { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); } .drawer-bottom .drawer-content-wrapper { bottom: 0; } .drawer-bottom .drawer-handle { top: -40px; box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15); border-radius: 4px 4px 0 0; } .drawer-bottom.drawer-open .drawer-wrapper { box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15); } .drawer.drawer-open > * { pointer-events: auto; } .drawer.drawer-open .drawer-mask { opacity: .3; } .drawer.drawer-open .drawer-handle-icon { background: transparent; } .drawer.drawer-open .drawer-handle-icon:before { transform: translateY(5px) rotate(45deg); } .drawer.drawer-open .drawer-handle-icon:after { transform: translateY(-5px) rotate(-45deg); }