На jquery, например, так попытался реализовать функцию, которая бы заменила мне display:fixed; поскольку это свойство мне не подходит:
$.fn.scrollObservableY = function(callback) {
let _this = this;
_this.scrollObservableData = {X:0,Y:0};
setInterval(function () {
if(_this.scrollObservableData.Y!== window.scrollY){
callback(_this, window.scrollY);
}
_this.scrollObservableData = {X:window.scrollX,Y:window.scrollY};
},0);
};
$('.dc-sticky').scrollObservableY(function ($element, scrollValue) {
$element.css({'transform':'translateY('+scrollValue+'px)'})
})
Это всё пока не похоже на фичу, т.к. я закопался с плавностью изменения значения, но вот пример недуга с которым я столкнулся в очередной раз
https://jsfiddle.net/hhv9xohu/
Обратите внимание, как блок не успевает за скроллом.