ScrollLeft возвращается в заданное положение, к сожалению, не работает в Firefox

Вопрос:
function scrollX(){
bodyWidthDif = 1100-parseFloat($('html').width());
bodyScroll = $('#top').scrollLeft();
if (bodyWidthDif > 0){
//#top is ID of BODY style element <BODY id="top">
$('#top').css({"overflow":"scroll","max-width":"1100px"});
if(bodyScroll > bodyWidthDif){
$('#top').scrollLeft(bodyWidthDif);
};
}else{
$('#top').css({"overflow-x":"hidden"});
}
};
$(window).scroll(function() {
scrollX();
});

У меня проблема с кодом, показанным выше, он не работает должным образом в FireFox, но работает на IE10, Opera, Safari и Chrome. Код предназначен для уменьшения возможности прокрутки влево до 1100 пикселей на экранах с разрешением ниже 1100 пикселей;

Лучший ответ:

Проблема уже решена.

function scrollX(){
bodyScroll = $('body').scrollLeft(); //var for Opera Chrome and Safar
htmlScroll = $('html').scrollLeft(); //var for Firefox
if(htmlScroll >= bodyWidthDif){
    $('html').scrollLeft(bodyWidthDif);
};
if(bodyScroll >= bodyWidthDif){
    $('body').scrollLeft(bodyWidthDif);
};
};

Но я воспользовался другим решением — простым использованием CSS.

<body style="overflow: visible">
    <div style="overflow: hidden; width: 1100px; height: 2000px; position: absolute;">
    </div>
</body>

Оцените статью
TechArks.Ru
Добавить комментарий