ymaps.ready(function () {
let ymap = document.querySelector('.contacts__map');
let coordinates = ymap.getAttribute('data-coordinates');
let address = ymap.getAttribute('data-address');
let myMap = new ymaps.Map('ymap', {
center: [53.2584970, 50.2369070],
zoom: 16
}, {
searchControlProvider: 'yandex#search'
});
let myPlacemark = new ymaps.Placemark(myMap.getCenter(), {
balloonContent: address
}, {
iconLayout: 'default#image',
iconImageHref: WPJS.siteUrl + '/assets/img/common/marker.svg',
iconImageSize: [40, 63.2],
iconImageOffset: [-50, -38]
});
let myPlacemark2 = new ymaps.Placemark2(myMap.getCenter(), {
balloonContent: address
}, {
iconLayout: 'default#image',
iconImageHref: WPJS.siteUrl + '/assets/img/common/marker.svg',
iconImageSize: [40, 63.2],
iconImageOffset: [-50, -38]
});
myMap.geoObjects.add(myPlacemark);
myMap.geoObjects.add(myPlacemark2);
myMap.behaviors.disable('scrollZoom');
});
const sliders = document.querySelectorAll("[data-slider]");
sliders.forEach(slider => {
const track = slider.querySelector("[data-slider-track]");
const prev = slider.querySelector("[data-slider-prev]");
const next = slider.querySelector("[data-slider-next]");
if (track) {
prev.addEventListener("click", () => {
next.disabled = false;
// next.removeAttribute("disabled");
track.scrollTo({
left: track.scrollLeft - track.firstElementChild.offsetWidth,
behavior: "smooth"
});
});
next.addEventListener("click", () => {
prev.disabled = false;
// prev.removeAttribute("disabled");
track.scrollTo({
left: track.scrollLeft + track.firstElementChild.offsetWidth,
behavior: "smooth"
});
});
track.addEventListener("scroll", () => {
const trackScrollWidth = track.scrollWidth;
const trackOuterWidth = track.clientWidth;
prev.disabled = false;
next.disabled = false;
// prev.removeAttribute("disabled");
// next.removeAttribute("disabled");
if (track.scrollLeft <= 0) prev.disabled = true; //prev.setAttribute("disabled", "");
if (track.scrollLeft === trackScrollWidth - trackOuterWidth) next.disabled = true; //next.setAttribute("disabled", "");
});
};
});
.center-box {
display: flex;
gap: 15px
}
.character-line {
flex-shrink: 0;
width: 76%;
}
.checkbox-line {
flex-grow: 1
}
import Swiper, { Controller } from 'swiper';
let swiperIMG = new Swiper('.slider--image', { ... }), // Слайдер изображений.
swiperText = new Swiper('.slider--text', { ... }); // Слайдер текстовый.
// Связка сладера изображений со слайдером текстовым:
swiperIMG.controller.control = swiperText;
swiperText.controller.control = swiperIMG;
min-width: 370px;
, поэтому при сужении они не сжимаются меньше или что-то я не понял?).post_item:not(:last-child) {
margin-right: 20px;
}
this.offsetSlide = ((this.slides[1].offsetLeft - this.slides[0].offsetWidth)*100)/this.main.offsetWidth;
, то есть по клику на кнопки высчитываем процентное соотношение отступа. Пришлось добавить её и для кнопки назад и вперед (81 и 97 строки).