【问题标题】:Position element in the middle of the screen after scrolling滚动后将元素定位在屏幕中间
【发布时间】:2009-02-26 06:55:29
【问题描述】:

我的页面是屏幕高度的 2 倍(大小取决于页面上的其他项目)。无论滚动位置如何,我都想在屏幕中间显示一个绝对定位的 SPAN。

我在按钮单击时应用以下样式,但是如果我一直向下滚动,该元素会显示在页面的最顶部,因为它从整个页面顶部开始计算 50%。

.Centered {
    width: 100%;
    position: absolute;
    top: 50%;
    left: 45%;
}

如何根据单击按钮时的滚动量将元素定位在页面中间?

谢谢。

【问题讨论】:

    标签: jquery css positioning


    【解决方案1】:

    您确定不想要fixed positioning

    绝对定位将项目定位在页面的上下文中,因此它将 随页面上下滚动。固定定位将项目定位在视口的上下文中,因此它不会随页面移动。相反,无论您如何滚动,它都会保持在相同的位置。

    .Centered
    {
      width:100%;
      position:fixed;
      top:50%;
      left:45%;
    }
    

    菜单on this page 是固定定位的一个很好的例子。

    【讨论】:

    • center到底是怎么回事?
    • Timwi: 好吧,我没有应用它的 HTML roman m,但 top:50% 会将 .Centered 元素移动到页面的中间,left:45% 将移动它大部分朝向水平中间。因此,宽度约为页面宽度 10% 的细元素将居中显示。
    【解决方案2】:
    .Centered 
    {
        position:absolute;   
        width:100%;
        top:50%;
        left:50%;
        margin-height: -200px;
        max-height: 400px;
    }
    

    这样,技巧就变成了为最大高度找到合适的值。

    【讨论】:

    • 高度将根据页面上网格中的项目数而有所不同
    • @rm 那么你必须在网格填满数据后通过 javascript 动态设置 max-height
    【解决方案3】:

    尝试使用jQuery Center Plugin

    【讨论】:

    • 它甚至在his demo中都不起作用
    • 在他的演示中没有任何效果。没有什么是居中
    猜你喜欢
    • 2015-03-23
    • 1970-01-01
    • 2012-04-09
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    相关资源
    最近更新 更多