screen_rotation
Copied to Clipboard
<html> <head> <script type="importmap"> { "imports": { "vue": "https://unpkg.com/vue@3/dist/vue.esm-browser.js" } } </script> <body> <div id="app"> <h3>Vue Js Toggle DropDown</h3> <div class="dropdown"> <button class="dropdown-toggle" @click="show = !show"> Dropdown </button> <transition name="slide"> <div class="dropdown-menu" v-if="show"> <a class="dropdown-item" href="#">Action 1</a> <a class="dropdown-item" href="#">Action 2</a> <a class="dropdown-item" href="#">Action 3</a> </div> </transition> </div> </div> <script type="module"> import { createApp } from "vue"; createApp({ data() { return { show: false } }, }).mount("#app"); </script> <style> .dropdown { position: relative; } .dropdown-toggle { background-color: white; border: 1px solid gray; border-radius: 5px; cursor: pointer; display: inline-block; padding: 10px 15px; } .dropdown-menu { background-color: white; border: 1px solid gray; border-radius: 5px; box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); position: absolute; top: calc(100% + 10px); z-index: 1; } .dropdown-item { color: gray; display: block; padding: 10px 15px; text-decoration: none; } .dropdown-item:hover { background-color: lightgray; color: white; } .slide-enter-active, .slide-leave-active { transition: all .3s ease; } .slide-enter, .slide-leave-to { transform: translateY(-10px); opacity: 0; } </style> </body> </head> </html>