Vue.jsでスムーススクロールを実装する「vue-smooth-scroll」

by kabanoki

HTML

<div id="app">
  <p>↓↓↓↓ Scroll!! ↓↓↓↓</p>
  <div class="box"></div>
  <a class="border p-2 m-2" href="#app" v-smooth-scroll>Go To #app</a>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>
<link type="text/css" rel="stylesheet" href="https://unpkg.com/bootstrap/dist/css/bootstrap.min.css" />
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue-smooth-scroll.min.js"></script>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#app {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  transition: all 0.2s;
}

.box {
  height: 1500px;
}

Vue

const VueSmoothScroll = window['VueSmoothScroll'];

Vue.use(VueSmoothScroll);
new Vue({
  el: '#app'
});