JS基于视点添加填充顶部?

Posted

技术标签:

【中文标题】JS基于视点添加填充顶部?【英文标题】:JS adding padding top based on viewpoint? 【发布时间】:2013-10-17 09:16:52 【问题描述】:

是否可以根据视点/屏幕大小将填充顶部添加到元素?

例如,您有一个大图像横幅,并且您希望它是您在加载页面时看到的第一件事,下面没有任何内容,因为该内容已通过视点 js 添加的填充被向下推,因此您然后滚动到此为止。

所以是响应式图像然后是您的内容,但无论屏幕大小如何,图像总是首先填满屏幕?

然后您将内容向上滚动到横幅图像上,因此需要根据屏幕尺寸进行动态填充?

【问题讨论】:

是的,有可能 ^^ 查看这些 jquery 函数 $(document).height();和api.jquery.com/scrollTop 【参考方案1】:

我了解到您想在页面顶部添加内边距/边距,以将其主要内容下推至屏幕高度。

这是我用jQuery写的一个快速的JS

将此代码放在 jQuery 本身的 include 标记之后的 <head> 标记内。

$(window).load(function() 
    $(".contentClass").css('padding-top', $(window).height());
);

您可以在html文档的<head>标签中添加带有该标签的jQuery库:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

【讨论】:

谢谢你就是我的意思,我会试一试! 这行得通,但是有没有办法以百分比而不是像素来表示呢?谢谢。 我不知道手头有什么技巧。但我认为最好的选择是使用 JS。【参考方案2】:

如果您想确保您的图片会尽快推送内容,以便访问该网站的人看不到下面的内容,我建议您不要在整个页面加载,但放置在图像下方并在图像加载后立即执行:

<img id="banner" src="my-image.jpg">
<script>
    var banner = document.getElementById('banner');
    banner.onload = function() 
        banner.style.marginTop = (window.innerHeight - banner.offsetHeight) + 'px';
    ;
</script>

然而,更好的方法是通过 javascript 将图像加载到 DOM 中

<div id="banner"></div>
<script>
    var banner = document.getElementById('banner');
    var img = new Image();

    banner.appendChild(img);
    img.onload = function() 
        banner.style.marginTop = (window.innerHeight - banner.offsetHeight) + 'px';
    ;
    img.src = 'my-image.jpg';
</script>

【讨论】:

谢谢,如果图像实际上是元素的背景图像而不是物理图像,这会起作用吗? 根本不会。如果您想将图像用作background,则无法获取其尺寸。您只需要了解它们即可。

以上是关于JS基于视点添加填充顶部?的主要内容,如果未能解决你的问题,请参考以下文章

想要在Google Chart(可视化)中的条形图中添加注释文本的顶部填充

我可以在从 Access DB 填充的组合框顶部添加一个额外的行吗

SwiftUI Text 意外填充底部和顶部

有一个图例会导致 IE 忽略字段集的顶部填充 - 替代方案?

为啥在 php 中使用 TCPDF 的单元格中存在左侧和顶部填充?

JS——给网页添加返回顶部按钮