1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/null_639_5368-v-full-page

Клонировать/Скачать
README.md 6.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 08:53 cfd7c48

mv-full-page

Совместимость: ПК, мобильные устройства (WeChat официальный аккаунт) полноэкранный компонент с прокруткой.

Если вам нравится этот компонент, поставьте ему звезду и вы можете поддержать автора чашкой кофе на странице пожертвований.

Спасибо! (^ω^)♪

Также:

Если ваш проект использует этот компонент, вы можете отправить ссылку на него для демонстрации.

Другие версии

Версия Vue2 доступна в ветке 2.0: https://gitee.com/null_639_5368/v-full-page/tree/master/

Установка

npm i mv-full-page

или

yarn add mv-full-page

Глобальная регистрация

import { createApp } from 'vue';
import MvFullPage from 'mv-full-page'
import "../node_modules/mv-full-page/dist-lib/style.css"; // Ссылка на CSS файл относительно пути для совместимости с webpack и vite

const app = createApp();

app.use(MvFullPage);

Локальная регистрация

import { defineComponent } from "vue";
import MvFullPage from 'mv-full-page'
import "../node_modules/mv-full-page/dist-lib/style.css"; // Ссылка на файл CSS относительно пути для совместимости с webpack и vite

export default defineComponent({
    components:{
        MvFullPage
    }
});

Пример кода

Базовый пример использования

Переход

Динамические слоты

   <mv-full-page   
    :pages="list.length"
    :v-model:page="page" 
    >
      <!-- Динамический слот -->
      <template
        v-slot:[dynamicSlotName+(index+1)]
        v-for="(item, index) in list"
      >
        <div :class="`page${index + 1}`" :key="index">
          {{ `Страница ${JSON.stringify(item)}` }}
        </div>
      </template>
    </mv-full-page>

Асинхронная конфигурация

<!-- Если конфигурация требует асинхронного получения, рекомендуется использовать v-if="isInit" чтобы определить, следует ли начинать рендеринг компонента. Вы можете создать собственную загрузку или текстовое приглашение для ожидания рендеринга компонента -->
    <mv-full-page v-if="isInit" ref="myFullPage" :pages="pages" v-model:page="page" :config="config"
      @rollEnd="onRollEnd" @pointerMouseover="pointerMouseover">
    </mv-full-page>
    <p v-else style="font-size: 30px;text-align:center;padding: 30px;color: #656565;">Загрузка...</p>
  

Nuxt3

Пример кода Демонстрация

Демо

Функции

  • Поддержка сенсорного скроллинга на мобильных устройствах
  • Поддержка скроллинга колесом мыши на ПК
  • Поддержка кэширования страниц
  • Решение проблемы отскока при скроллинге на iOS
  • Поддержка изменения направления скроллинга
  • Поддержка локального скроллинга (решает проблему отскока элементов при скроллинге в официальном аккаунте WeChat)
  • Поддержка пользовательских позиций и размеров контейнера прокрутки
  • Индикатор для переключения страниц
  • Настройка скорости перехода
  • Реакция на изменение размера окна
  • Динамические слоты
  • Поддержка TypeScript

Свойства

name 类型 默认值 备注
pages Number 1 Общее количество страниц
page: v-model:page Number 1 Текущая страница
config Object - Подробности см. в конфигурации
loading Boolean - Загрузка...

Конфигурация

{
    /**
     * Отключить прокрутку
     */
    disabled: false,
    /**
     * Режим позиционирования
     */
    position: "fixed",
    /**
     * Пользовательская ширина контейнера
     */
    width: "100%",
    /**
     * Пользовательская высота контейнера
     */
    height: "100%",
    /**
     * v => вертикальное направление, h => горизонтальное направление
     */
    direction: "h",
    poi: {
      /**
       * Показать индикатор
       */
      pointer: true,
      /**
       * Положение индикатора
       */
      position: "right",
    },
    /**
     * Кэшировать страницы
     */
    cache: true,
    /**
     * Массив фонов страниц
     * Пример: [{цвет:'зеленый',изображение:'http://...'}]
     */
    bgArr: [],
    /**
     * Настройка свойств фонового изображения
     */
    bgConfig: {
      fit: "cover",
    },
    /**
     * Настроить переход
     */
    transition: {
      duration: "1000ms", // Длительность анимации
      timingFun: "ease", // Скорость анимации
      delay: "0s", // Задержка анимации
    },
    // Циклическое воспроизведение
    loop: false,
    arrow: {
      // Стрелка предыдущей страницы
      last: false,
      // Следующая страница стрелка
      next: false,
    },
    // Автоматическое воспроизведение
    autoPlay: {
      play: false,
      // Интервал переключения
      interval: 1000,
    },
}

События

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/null_639_5368-v-full-page.git
git@api.gitlife.ru:oschina-mirror/null_639_5368-v-full-page.git
oschina-mirror
null_639_5368-v-full-page
null_639_5368-v-full-page
vue3