Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用鼠标滚轮和侧边栏更改Div Y位置_Javascript_Jquery_Position_Mousewheel - Fatal编程技术网

Javascript 使用鼠标滚轮和侧边栏更改Div Y位置

Javascript 使用鼠标滚轮和侧边栏更改Div Y位置,javascript,jquery,position,mousewheel,Javascript,Jquery,Position,Mousewheel,当我用鼠标滚轮或侧边栏向下或向上滚动时,我的div会逐渐改变Y位置(例如向上或向下50px)。我需要Javascript/Jquery中的这个 我尝试了这段代码,但只适用于向下滚动(向下滚动和向上滚动功能工作正常,只有动画部分工作错误): 更新: var sidebarScrollTop = 0; $(document).ready(function() { sidebarScrollTop = $("body").offset(); $(window).scrol

当我用鼠标滚轮或侧边栏向下或向上滚动时,我的div会逐渐改变Y位置(例如向上或向下50px)。我需要Javascript/Jquery中的这个

我尝试了这段代码,但只适用于向下滚动(向下滚动和向上滚动功能工作正常,只有动画部分工作错误):

更新:

 var sidebarScrollTop = 0;

    $(document).ready(function() {

    sidebarScrollTop = $("body").offset();
    $(window).scroll(function () 
    { 
        var docScrollTop = $('body,html').scrollTop();
        if(docScrollTop > sidebarScrollTop.top)
        {


        $("#legend").stop().animate({ marginTop: "+=50px",}, 'slow', "easeOutCirc" );
        }
        else
        {
        $("#legend").stop().animate({ marginTop: "-=50px",}, 'slow', "easeOutCirc" );

        }
    });
    });

    $(window).resize(function() 
    {
    sidebarScrollTop = $("#legend").offset().top;
    });

    $(document).resize(function() 
    {
    sidebarScrollTop = $("#legend").offset().top;

});
谢谢

您可以使用

$(window).scroll(function() {
   // Your scroll code here
});
每当用户在页面上滚动时抓取

接下来要更改
div
的y值。 如果
div
被定位为绝对值,则这只是更改其最大值

$('my-div').top = original-top-value + $(window).pageYOffset;

我相信您需要的是保持div始终显示,即使用户向下滚动。如果是这种情况,则只能使用CSS:

div {
  position: fixed;
  z-index: 100;
  top: 100px;
  left: 100px;
}
z-index、top和left的值都是伪值。把它们换成你的

更新:


由于CSS解决方案对您不起作用,这里有一个JS中的工作示例writer:

是的,但position:fixed忽略布局,我要移动的div位于页面中心的其他div内。我对此方法有一个问题,我需要我的div保持在其他div(我的网站容器)内以窗口大小为中心,调整内容的高度(本例中为滚动)。