Отслеживание CSS свойства translate у элемента и подстановка в другой элемент
Приветствую, знатоки JS и JQuery!
Прошу помощи с решении задачи, сам с JS слаб, а в интернете уже все перерыл - ответа не нашел... Есть один сайт, на котором использую скрипт fullPage - постраничная прокрутка. По-сути скрипт заворачивает все секции в "слайды" со свойством position: fixed. Т.е. он полностью убирает скролл. Однако есть слайды в которых необходима прокрутка и тут самое интересное - "прокрутка" происходит средствами изменения transform: translate и свойства overflow: hidden. Следовательно событие scroll не срабатывает. Внутри этого блока с прокруткой есть элемент, который должен быть зафиксировать, position: fixed в данном случае не работает. Задача - динамически определять у одного элемента (fp-scroller) свойства transform: translate (вероятно при изменении) и подставлять в другой обратные значения (map-block). Т.е. в данном примере нужно подставить на текущий момент transform: translate(0px, 57px) элементу map-block. Кто-нибудь сталкивался с подобной задачей? Буду сильно благодарен за помощь.
<div class="fp-scroller" style="transition-timing-function: cubic-bezier(0.1, 0.57, 0.1, 1); transition-duration: 0ms; transform: translate(0px, -57px) translateZ(0px);">
<div class="fl-grid two-cols">
<div class="column text-block">
</div>
<div class="column map-block">
</div>
</div>
|
EuRo1985, отслеживайте событие while/mousewheel над элементом.
|
Цитата:
$(function(){
$('body').on('mousewheel DOMMouseScroll', function(event) {
if ($('.contacts-section').is('.active')) { // ограничиваем выполнение нужным слайдом
var obj = $('.contacts-section .fp-scroller');
var transformMatrix = obj.css("-webkit-transform") ||
obj.css("-moz-transform") ||
obj.css("-ms-transform") ||
obj.css("-o-transform") ||
obj.css("transform");
var matrix = transformMatrix.replace(/[^0-9\-.,]/g, '').split(',');
var x = matrix[12] || matrix[4]; // translate x
var y = matrix[13] || matrix[5]; // translate y
$('.contacts-section .map-block').css({
transform: 'translate(0, ' + Math.abs(y) + 'px)'
});
}
});
});
|
| Часовой пояс GMT +3, время: 11:54. |