Отслеживание 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, время: 10:06. |