Skip to content

Commit d1a9815

Browse files
committed
scroll selected option into view
1 parent 56aeaff commit d1a9815

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/components/mdSelect/mdOption.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
},
5656
setParentOption() {
5757
if (!this.isMultiple()) {
58-
this.parentSelect.selectOption(this.value, this.$refs.item.textContent);
58+
this.parentSelect.selectOption(this.value, this.$refs.item.textContent, this.$el);
5959
} else {
6060
this.check = !this.check;
6161
}

src/components/mdSelect/mdSelect.vue

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<div class="md-select" :class="[themeClass, classes]">
3-
<md-menu :md-close-on-select="!multiple" @opened="$emit('open')" @closed="$emit('close')">
3+
<md-menu :md-close-on-select="!multiple" @open="onOpen" @close="$emit('closed')">
44
<span class="md-select-value" md-menu-trigger ref="value">{{ selectedText || placeholder }}</span>
55

66
<md-menu-content class="md-select-content" :class="[themeClass, contentClasses]">
@@ -36,6 +36,7 @@
3636
mixins: [theme],
3737
data() {
3838
return {
39+
lastSelected: null,
3940
selectedValue: null,
4041
selectedText: null,
4142
multipleOptions: {},
@@ -72,6 +73,13 @@
7273
}
7374
},
7475
methods: {
76+
onOpen() {
77+
if (this.lastSelected) {
78+
this.lastSelected.scrollIntoViewIfNeeded(true);
79+
}
80+
81+
this.$emit('opened');
82+
},
7583
setParentDisabled() {
7684
this.parentContainer.isDisabled = this.disabled;
7785
},
@@ -154,7 +162,8 @@
154162
155163
this.changeValue(values);
156164
},
157-
selectOption(value, text) {
165+
selectOption(value, text, el) {
166+
this.lastSelected = el;
158167
this.selectedText = text;
159168
this.setTextAndValue(value);
160169
this.changeValue(value);

0 commit comments

Comments
 (0)