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

OSCHINA-MIRROR/mirrors-Glider.js

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 7.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 15.03.2025 12:54 a1bcb20

Glider.js

Последняя версия: 1.7.8 Быстрый, легковесный, независимый от зависимостей, адаптивный, доступный, расширяемый список с пейджинговыми контролями, методами и событиями. (< 2.8 кб после gzip!)

Демо и полная документация доступны на Github Pages: https://nickpiscitelli.github.io/Glider.js/

Быстрое начало

Добавьте glider.min.css:

<link rel="stylesheet" href="glider.min.css">
или
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/glider-js@1/glider.min.css">

Добавьте Glider.js:

<script src="glider.min.js"></script>
или
<script src="https://cdn.jsdelivr.net/npm/glider-js@1/glider.min.js"></script>

Пример HTML:

<div class="glider">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
</div>

Инициализация Glider.js

new Glider(document.querySelector('.glider'));

Инициализация Glider.js со всеми параметрами:

new Glider(document.querySelector('.glider'), {

  // `auto` позволяет автоматически вычислять адаптивную ширину
  slidesToShow: 'auto',
  slidesToScroll: 'auto',

  // должно было называться `itemMinWidth`
  // слайды увеличиваются до размера контейнера
  // игнорируется, если `slidesToShow` установлен на `auto`
  itemWidth: undefined,

  // если true, слайды не будут масштабироваться для соответствия размеру экрана
  // требует установки `itemWidth`
  // * это может вызвать наличие дробных слайдов
  exactWidth: false,

  // скорость прокрутки — чем выше значение, тем медленнее прокрутка
  duration: .5,

  // контейнер элементов или селектор для точек
  dots: 'CSS Selector',

  // контейнер элементов или селектор для стрелок
  arrows: {
    prev: 'CSS Selector',
    // можно передать элемент напрямую
    next: document.querySelector('CSS Selector')
  },
});  // enable mouse dragging
  draggable: false,
  // how much to scroll with each movement of the mouse
  dragVelocity: 3.3,

  // use any custom easing function
  // compatible with most easing plugins
  easing: function(x, t, b, c, d) {
    return c * (t /= d) * t + b;
  },

  // event propagation management
  scrollPropagate: false,
  eventPropagate: true,

  // force centering of the slide after a scrolling event
  scrollLock: false,
  // how long to wait after a scrolling event before locking
  // if too short, it may interfere with normal scrolling
  scrollLockDelay: 150,  // Force centering of the slide after a resizing event
  resizeLock: true,

  // Glider.js breakpoints are mobile-oriented
  responsive: [
    {
      breakpoint: 900,
      settings: {
        slidesToShow: 2,
        slidesToScroll: 2
      }
    },
    {
      breakpoint: 575,
      settings: {
        slidesToShow: 3,
        slidesToScroll: 3
      }
    }
  ]
});

Changing options:

Glider(document.querySelector(element_path)).setOption({
  name: value,
  ...
});

// optionally call refresh
Glider(document.querySelector(element_path)).refresh();

Binding events:

document.querySelector(element_path).addEventListener('glider-slide-visible', function(event){
  // `this` is bound to the glider element
  // custom data is located in `event.detail`
  // access to the Glider object through `Glider(this)`
  ...
});

Removal using:

Glider(document.querySelector(element_path)).destroy();

Installation using package managers NPM/YARN```

$ npm install glider-js

$ yarn add glider-js


#### Поддержка браузеров

Glider.js должна работать во всех современных браузерах. Поддержка старых браузеров может быть достигнута путём использования полифилов для `document.classList`, `window.requestAnimationFrame`, `Object.assign` и `CustomEvent`.

Добавьте `glider-compat.min.js` для загрузки вышеупомянутых полифилов.

#### Нативные полосы прокрутки

Большинство браузеров теперь поддерживают свойство `scrollbar-width`, что позволяет избежать грязной хакерской доработки ниже.

**ПРИМЕЧАНИЕ:** Эта функция отмечена как экспериментальная и может не работать во всех браузерах.

```css
.glider-track {
  scrollbar-width: none;
}

Так как Glider.js использует нативную прокрутку, браузеры хотят применять стандартные полосы прокрутки к glider. В большинстве случаев это допустимо, так как полосы прокрутки могут быть скрыты с помощью CSS, а Glider.js делает это при необходимости. Однако в браузерах, таких как Firefox, полосы прокрутки не могут быть скрыты с помощью CSS и требуют дополнительной разметки для скрытия.

Для скрытия полос прокрутки в Firefox вам следует обернуть ваш glider в <div class="glider-wrap"> и применить следующий CSS/JS:```css @-moz-document url-prefix() { .glider-track { margin-bottom: 17px; } .glider-wrap { overflow: hidden; } }


```javascript
document.addEventListener('glider-loaded', скрытьFFScrollIndicator);
document.addEventListener('glider-refresh', скрытьFFScrollIndicator);

function скрытьFFScrollIndicator(e) {
  var высотаПолосыПрокрутки = 17; // Currently 17, may change with updates
  if (/firefox/i.test(navigator.userAgent)) {
    // We need to apply this only to the desktop version. Firefox for mobile devices uses a different rendering engine (WebKit)
    if (window.innerWidth > 575) {
      e.target.parentNode.style.height = (e.target.offsetHeight - высотаПолосыПрокрутки) + 'px';
    }
  }
}

Пакеты, использующие Glider.js :rocket:- react-glider - Обертка для Glider.js на React, написанная на TypeScript.

Внешние зависимости

Ничего :)

Лицензия

Авторское право © 2018 Ника Писчителли

Разрешено в рамках лицензии MIT.

Это всё ваше.

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

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

1
https://api.gitlife.ru/oschina-mirror/mirrors-Glider.js.git
git@api.gitlife.ru:oschina-mirror/mirrors-Glider.js.git
oschina-mirror
mirrors-Glider.js
mirrors-Glider.js
master