#javascript #html #jquery #css #carousel
Вопрос:
Я создал слайдер с эффектом затухания, используя этот плагин https://github.com/crystal-lang/crystal-presents
моя логика такова
- Я размещаю свои слайды в разных местах слева
0, 25%, 50% ,75%
(если слайдов четыре). - Теперь я перемещаю эти стороны
0px
, когда пользователь переходит с помощью кнопки «Далее». используя translateX перехода(0) с0 Sec
. И увеличьте непрозрачность от 0 до 1 за 5 секунд .
моя проблема .
- Выцветание-это нормально.
- Но я хочу перевести несколько пикселей
right to left or left to right
в зависимости от того, какой вариант выберет пользователь . - Другими словами, в настоящее время слайд перемещается
1000px (his position) to 0px (expecting position) in zero sec
. Я хочу, чтобы он двигался100px to 0px
(на небольшое расстояние)3 second
так, чтобы выглядело, что слайд также скользит (маленький пиксель).
возможно ли это ??
вот мой код https://codesandbox.io/s/nostalgic-smoke-f5y51?file=/slider.js
prevSlide() {
const t = this;
const opts = t.options;
let nextSlide = t.activeSlide - 1;
if (t.activeSlide <= 1 amp;amp; !t.isEnabledOption("loop")) {
return;
}
if (nextSlide < 1) {
nextSlide = t.slidesLength;
}
if (isFunction(opts.beforeChange)) {
opts.beforeChange.call(t, t, t.activeSlide, nextSlide, t.slidesLength);
}
t.activeSlide <= 1 amp;amp; t.isEnabledOption("loop")
? (t.activeSlide = t.slidesLength)
: (t.activeSlide -= 1);
t._setActiveSlide();
}
nextSlide() {
const t = this;
const opts = t.options;
let nextSlide = t.activeSlide 1;
if (t.activeSlide >= t.slidesLength amp;amp; !t.isEnabledOption("loop")) {
t._paused = true;
return;
}
if (nextSlide > t.slidesLength) {
nextSlide = 1;
}
if (isFunction(opts.beforeChange)) {
opts.beforeChange.call(t, t, t.activeSlide, nextSlide, t.slidesLength);
}
t.activeSlide >= t.slidesLength amp;amp; t.isEnabledOption("loop")
? (t.activeSlide = 1)
: (t.activeSlide = 1);
t._setActiveSlide();
}