【问题标题】:Scroll div horizontally instead of page, then scroll page水平滚动 div 而不是页面,然后滚动页面
【发布时间】:2020-05-28 09:03:32
【问题描述】:

它不是重复的,因为我已经阅读了其他问题,但每个人都认为滚动是垂直的,而我需要水平滚动。 我想要做的是滚动一个放置在页面某处的 div,当它到达屏幕中心或几乎可见时,当它结束滚动时,我需要继续页面滚动。

其实我有一个这样的“滑块”:JSFIDDLE

实际上,当元素在滚动后在页面上可见时,我可以获得建议,但我不知道如何禁用垂直滚动,滚动我的 div,然后再次滚动页面。重要的是 div 滚动了多少我继续滚动(打算用鼠标、键盘和触摸,它会很棒)

function testInView($el){
var wTop = $(window).scrollTop();
var wBot = wTop + $(window).height();
var eTop = $el.offset().top;
var eBot = eTop + $el.height()+50;
return ((eBot <= wBot) && (eTop >= wTop));
}
function setInView(){
$(".slider-wrapper").each(function(){
    var $zis = $(this);
    $zis.removeClass("inview");
    if(testInView($zis)){
       alert("eccolo");   
    }
});
}
$(document).scroll(function(){
    setInView();
});
$(document).resize(function(){
    setInView();
});
$(document).ready(function(){
    setInView();
});

【问题讨论】:

    标签: javascript jquery css position autoscroll


    【解决方案1】:

    如果你想禁用垂直滚动,那么只需在 body 元素上设置 overflow-y: hidden

    body {
        overflow-y: hidden;
    }
    

    【讨论】:

    • 我想这样做,但是当我阻止页面滚动时我想滚动 div,并且当它可见时我必须滚动 div 而不是滚动页面
    • 如果你想滚动 div 而不是页面然后隐藏 body 上的滚动并在 div 上设置滚动。使用overflow-x 和overflow-y 属性来控制x 和y 轴的滚动。
    • 是的,但 div 不是整页,也不是全宽,所以如果我在页面上方,我也必须滚动它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多