Good day! The script processes the attribute with the translate property. How to change it to margin?
$(function() { var $win = $(window), $rev = $('[data-tr]'), winH2 = 0, winSt = 0; function reveal() { winSt = $win.scrollTop(); winH2 = $win.height()/2; $rev.each(function(i, el){ var y = el.getBoundingClientRect().top, toMiddleMax = Math.max(0, y-winH2), idealMarg = Math.min(+el.dataset.val, toMiddleMax), margMin = Math.min(idealMarg, idealMarg * (toMiddleMax/winH2)); $(this).css({transform: el.dataset.tr+"("+ margMin +"px)"}); }); } $win.on({ "load resize scroll" : reveal }); }); <div class="block" data-tr="translateX" data-val="300"></div>