제목 표시줄로 스크롤할 수 있는 v-menu

10974 단어 Vue.jsVuetify
타이틀 바 첨부의 v-menu를 스크롤 할 수 있도록 할 때, 타이틀 바 부분까지 함께 스크롤 해 버려 곤란했습니다.
그것을, 타이틀 바는 고정인 채, 아이템 부분만 스크롤 하도록(듯이) 해결할 수 있었으므로 코드 샘플을 두어 둡니다.

이미지



이런 느낌의 것입니다.


환경



Vuetify 2.0.11

코드 샘플



Codepen



See the Pen Scrollable menu card sample by shozzy ( @shozzy )
on CodePen .


코드



Codepen 그대로입니다만, 코드를 이쪽에도 붙여 둡니다.




vue.js

<div id="app">
  <v-app id="inspire">
    <v-row>
      <v-col cols="12" sm="4" offset-sm="4">
        <v-card>
          <v-card-title class="blue white--text">
            <span class="headline">Menu</span>
          </v-card-title>
          <v-container
            id="scroll-target"
            style="max-height: 200px"
            class="overflow-y-auto"
          >
            <v-row
              v-scroll:#scroll-target="onScroll"
              align="top"
              justify="center"
            >
              <v-list width="100%" style="text-align: center">
                <v-list-item
                  v-for="(item, i) in items"
                  :key="i"
                  @click="message(item.title)"
                >
                  <v-list-item-title>{{ item.title }}</v-list-item-title>
                </v-list-item>
              </v-list>
            </v-row>
          </v-container>
        </v-card>
      </v-col>
    </v-row>
    <v-snackbar timeout="3000" v-model="snackbar">
      {{snackbar_msg}}
    </v-snackbar>
  </v-app>
</div>




vue.js

new Vue({
  el: '#app',
  vuetify: new Vuetify(),
  data() {
    return{
      items: [],
      snackbar: false,
      snackbar_msg: ""
    }
  },
  methods: {
    message(msg){
      this.snackbar_msg = msg
      this.snackbar = true
    },
    createItems(amount){
      for(let i=0; i<amount; ++i){
        let hash = { title: 'Item #'+i } 
        this.items.push( hash )
      }
    }
  },
  mounted() {
    this.createItems(10)    
  }
})



좋은 웹페이지 즐겨찾기