v-всплывающая подсказка, отображаемая в любом месте экрана. Не отображается рядом со значком v после прокрутки

#vue.js #tooltip #vuetify.js

#vue.js #всплывающая подсказка #vuetify.js

Вопрос:

Я использую vuetify версии 2.3.10. Проблема, с которой я сталкиваюсь здесь, заключается в том, что сообщения всплывающей подсказки для второго контейнера отображаются в любом месте экрана, а не рядом со значком всплывающей подсказки. Для первого контейнера она отображается рядом со значком. Пожалуйста, помогите мне найти, где я ошибаюсь. Ниже приведен мой код.

 <template>
    <v-card class="mb-12">
      <v-form :model='user'>
        <v-container fluid>
          <v-layout row wrap>
            <v-flex xs12 md6 class="add-col-padding-right tip-align">
              <v-text-field
                      label='Name'
                      v-model='user.name'>
              </v-text-field>
              <v-tooltip attach=".tip-align" left>
                <template v-slot:activator="{ on, attrs }">
                  <span v-bind="attrs" v-on="on"><v-icon class="icon-align" small slot="activator" dark color="primary">info</v-icon></span>
                </template>
                <span>Please enter name.</span>
              </v-tooltip>
            </v-flex>
            <v-flex xs12 md6 class="add-col-padding-left tip-align">
              <v-text-field
                      label='Address'
                      v-model='user.address'>
              </v-text-field>
              <v-tooltip attach=".tip-align" left>
                <template v-slot:activator="{ on, attrs }">
                  <span v-bind="attrs" v-on="on"><v-icon class="icon-align" small slot="activator" dark color="primary">info</v-icon></span>
                </template>
                <span>Please enter your address</span>
              </v-tooltip>
            </v-flex>
          </v-layout>
        </v-container>
        <v-container fluid>
          <v-layout row wrap>
            <v-flex xs12 md6 class="add-col-padding-right tip-align">
              <v-text-field
                      label='Position'
                      v-model='user.position'>
              </v-text-field>
              <v-tooltip attach=".tip-align" left>
                <template v-slot:activator="{ on, attrs }">
                  <span v-bind="attrs" v-on="on"><v-icon class="icon-align" small slot="activator" dark color="primary">info</v-icon></span>
                </template>
                <span>Please enter position.</span>
              </v-tooltip>
            </v-flex>
            <v-flex xs12 md6 class="add-col-padding-left tip-align">
              <v-text-field
                      label='Number'
                      v-model='user.number'>
              </v-text-field>
              <v-tooltip attach=".tip-align" left>
                <template v-slot:activator="{ on, attrs }">
                  <span v-bind="attrs" v-on="on"><v-icon class="icon-align" small slot="activator" dark color="primary">info</v-icon></span>
                </template>
                <span>Please enter your number</span>
              </v-tooltip>
            </v-flex>
          </v-layout>
        </v-container>
      </v-form>
    </v-card>
</template>
  

Ответ №1:

Я смог воспроизвести эту проблему на маленьком экране, где вам нужно прокрутить содержимое карты. Это может быть как-то связано с вашей <v-tooltip attach=".tip-align"/> попыткой прикрепить элемент, имеющий класс .tip-align . Однако есть 4 элемента ( <v-flex/> elements), которые имеют класс .tip-align , и с этим может возникнуть проблема.

Вы можете просто удалить attach=".tip-align" реквизит, поскольку он будет прикреплен к слоту по умолчанию по умолчанию (к вашим <v-icon/> элементам в вашем случае).

P.S. Если вы используете Vuetify 2.x, вы можете улучшить свой макет с помощью <v-row/> и <v-col/> .

Вот демо.

Комментарии:

1. Я попробовал то, что вы предлагаете, я все еще сталкиваюсь с проблемой. Я удалил прикрепить реквизит и улучшил макет с помощью v-row и v-col. Для полей, которые появляются на экране после прокрутки, для них всплывающая подсказка по-прежнему не выровнена. Она по-прежнему отображается в верхней части страницы, а не выровнена по значку v.

2. Тогда это может иметь какое-то отношение к вашим другим стилям. Можете ли вы создать скрипку или демо в codesandbox, чтобы мы могли лучше изучить проблему?

3. С моей стороны есть какая-то проблема. Я создал изолированную среду, и она там отлично работает.

4. Проблема, с которой я сталкиваюсь, примерно такая jsfiddle.net/kuzxLwxe/4

5. Если это работает в codesandbox, вероятно, есть какой-то внешний стиль, который влияет на размещение всплывающих подсказок