Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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 使用positon制作滚动菜单:固定;_Javascript_Html_Css - Fatal编程技术网

Javascript 使用positon制作滚动菜单:固定;

Javascript 使用positon制作滚动菜单:固定;,javascript,html,css,Javascript,Html,Css,我正在制作一个网站(),我想让左侧的菜单栏与页面一起滚动。换句话说,它将按原样从页面开始,然后,当用户向下滚动时,它将相对于浏览器窗口保持固定。这个想法来自一些StackOverflow页面右侧的链接,如。 我怎样才能做到这一点? PS:我已经知道如何使用position:fixed使div固定在左侧;左:0,但我的问题是如何在页面中间做这件事,不知道窗口的距离(因为页面位于中间,不管窗口大小) ReMySpple有一个非常好的教程(带视频),关于如何做到这一点: 雷米·夏普(Remy S

我正在制作一个网站(),我想让左侧的菜单栏与页面一起滚动。换句话说,它将按原样从页面开始,然后,当用户向下滚动时,它将相对于浏览器窗口保持固定。这个想法来自一些StackOverflow页面右侧的链接,如。
我怎样才能做到这一点?



PS:我已经知道如何使用
position:fixed使div固定在左侧;左:0,但我的问题是如何在页面中间做这件事,不知道窗口的距离(因为页面位于中间,不管窗口大小)

ReMySpple有一个非常好的教程(带视频),关于如何做到这一点:


雷米·夏普(Remy Sharp)有一个非常好的教程(带视频),介绍了如何做到这一点:


听起来像是一道数学题。。。使用JS获得窗口大小,除以2得到中点,从中点值减去固定div大小的一半,然后将CSS位置“left”值设置为该值。

听起来像是一个数学问题。。。使用JS获得窗口大小,除以2得到中点,从中点值减去固定div大小的一半,然后将CSS位置“left”值设置为该值。

将此添加到样式表中,而不是现在用于
\leftcol

#leftcol {
    position: fixed;
    top: 50%;
    margin-left: 20px;
    margin-top: -150px;
    text-align: center;
}
然后将以下内容添加到您的
#容器
类中:

position: relative;

你的菜单现在在页面的中间。不过,您可能需要重新定位内容。。。只需添加一个边距。

将此边距添加到样式表中,而不是现在用于
#leftcol

#leftcol {
    position: fixed;
    top: 50%;
    margin-left: 20px;
    margin-top: -150px;
    text-align: center;
}
然后将以下内容添加到您的
#容器
类中:

position: relative;

你的菜单现在在页面的中间。不过,您可能需要重新定位内容。。。只需加一个边距。

我想他指的是中间和中间。你也可以用同样的方法来垂直。非常感谢你的回答。事实上,我没有想到用js来计算左边的位置,我更关注CSS,我想他指的是中间的位置。你也可以用同样的方法来垂直。非常感谢你的回答。事实上,我没有想到用js来计算左边的位置,我更关注CSS。谢谢你花时间回答我的问题,尽管我想你可能误解了我的问题:这不是关于如何固定元素垂直居中,而是如何使它正常启动,并且只有当用户向下滚动时(div触摸屏幕顶部)修复它。无论如何,谢谢!谢谢你花时间回答,尽管我想你可能误解了我的问题:这不是关于如何修复垂直中心的元素,而是如何使它正常启动,并且只有当用户向下滚动时(div触摸屏幕顶部)修复它。无论如何,谢谢!谢谢你花时间回答。我相信这会起作用。不过,作为一个有趣的问题,我如何检测用户何时滚动(以及滚动多少)没有第三方脚本?感谢您花时间回答。我相信这会起作用。不过,作为一个有趣的问题,我如何检测没有第三方脚本的用户何时滚动(以及滚动多少)?