Jquery 水平移动div,然后垂直移动

Jquery 水平移动div,然后垂直移动,jquery,position,horizontal-scrolling,Jquery,Position,Horizontal Scrolling,我在这里举了一个我所拥有的例子: 我的脚本如下所示: var minHeight = $(window).scrollTop(); var maxHeight = $(window).height(); var middleHeight = (maxHeight + minHeight) / 2; $(window).scroll(function () { var positionTopDiapo = $('#diaporama').offset().top; var hau

我在这里举了一个我所拥有的例子:

我的脚本如下所示:

var minHeight = $(window).scrollTop();
var maxHeight = $(window).height();
var middleHeight = (maxHeight + minHeight) / 2;

$(window).scroll(function () {
    var positionTopDiapo = $('#diaporama').offset().top;
    var hauteurDivDiapo = $('#diaporama').height()/2;
    var positionTop = $('#frame').offset().top;
    var hauteurDiv = $('#frame').height()/2;
    var positionY = positionTop + hauteurDiv - $(window).scrollTop();
    var positionYDiapo = positionTopDiapo + hauteurDiv - $(window).scrollTop();
    var bottomDiapo = (positionTopDiapo - $(window).scrollTop()+ $('#diaporama').height());
    var bottomFrame = (positionTop - $(window).scrollTop()+$('#frame').height());


    var window_width = $(window).width() - $('#frame').width();
    var document_height = $('#diaporama').height() - $('window').height();
    var scroll_position = $(window).scrollTop();
    var object_position_left = window_width * (scroll_position / document_height);
    $('#frame').css({'left': object_position_left });

    if(positionYDiapo<=middleHeight){
        $('#frame').css({position:'fixed', top: positionTop - $(window).scrollTop(), bottom:'auto'});





                if(bottomDiapo<=bottomFrame){
                    $('#frame').css({ 'position': 'absolute' });
                    $('#frame').css({ 'bottom': '0px' });
                    $('#frame').css({ 'top': 'auto' });
                }

     }  else{
        $('#frame').css({position:'absolute', top:'0px', bottom:'auto'});
        $('#frame').css({ 'left': '0px' });
    }
var minHeight=$(窗口).scrollTop();
var maxHeight=$(窗口).height();
变量middleHeight=(最大高度+最小高度)/2;
$(窗口)。滚动(函数(){
变量positionTopDipo=$('#diporama').offset().top;
var hauteurdiavdiapo=$(“#diporama”).height()/2;
var positionTop=$('#frame').offset().top;
var hauteurDiv=$('框架').height()/2;
var positionY=positionTop+hauteurDiv-$(窗口).scrollTop();
var positionYDiapo=positiontopdipo+hauteurDiv-$(窗口);
var bottomDiapo=(positionTopDiapo-$(窗口).scrollTop()+$('#diaporama').height());
var bottomFrame=(positionTop-$(window.scrollTop()+$('#frame').height());
var window_width=$(window.width()-$('#frame').width();
var document_height=$('#diporama').height()-$('window').height();
var scroll_position=$(窗口).scrollTop();
变量对象位置左=窗口宽度*(滚动位置/文档高度);
$('#frame').css({'left':object_position_left});

if(positionYDiapo以下是我到目前为止所做的:


当我给出左边的位置时,会出现一些小问题,但总体来说,这非常好。如果有人可以改进代码,请告诉我。我使用此代码是为了帮助其他有相同问题的人。这可能是其他有相同问题的人的一个开始。这很好。祝你好运。Jewb你需要更多地指出手头的问题,没有人会简单地为您浏览所有代码..问题是我似乎找不到一种方法来水平滚动所有li,而#diporama垂直滚动。我需要这样做:。在文化部分,我编辑了我的JSFIDLE,以便您可以看到问题
    var scroll_position = $(window).scrollTop(),
        d = $('#diaporama').get(0).scrollHeight,
        c = $('#diaporama').get(0).scrollWidth,

    scrollPercent = (scroll_position / (d+c));
    var position = (scrollPercent * - $('#frame').width())+positionTopDiapo;
    var positionGauche = $('#frame').offset().left;

    var tarif = $('#tarif').offset().top - $(window).scrollTop();