Утром встал с более имение ясной головой, переписал немного код, получилось вот так (может быть не совсем правильно с точки зрения красоты кода, но работает адекватно):
$window.on('load', function() {
var $width = $(document).width() / $(window).width(),
$coef_widht = $(window).width() / $width,
$scroll = $(document).scrollLeft();
$('.scrollX').css({
width: $coef_widht,
left: $scroll + $(window).width() / ($(document).width() / $scroll)
});
$(document).scroll(function() {
$scroll = $(document).scrollLeft();
$('.scrollX').css({
width: $coef_widht,
left: $scroll + $(window).width() / ($(document).width() / $scroll)
});
})
$('.scrollX').draggable({
axis: "x",
containment: "html",
drag: function( event, ui ) {
$scroll = $(document).scrollLeft();
$(document).scrollLeft(ui.offset.left - (($scroll / $(window).width()) * $coef_widht ));
}
})
});
Я сказал что работает адекватно, но не везде, в мозиле проблемы, на сколько я понял проблемы уже не в моем скрипте, а в самой draggable jquery в мозиле. Сразу после загрузки страницы координата определяются правильно, но стоит проскролить страницу - координата начинает прибавлять к правильному значению сотни а потом и тысячи пикселей...
Есть ли какой то способ обойти эту проблему?