javascript - 从滚动切换到固定时如何让背景图像保持不变?

标签 javascript jquery html css background-image

我正在尝试使用不同的图像作为网站文章页面的背景。文章的每个部分都有不同的背景图像。背景应正常滚动(背景附件为“滚动”,大小为“包含”),直到相应部分到达顶部,然后固定为封面大小。

我遇到的问题是背景图像只有在修复后才看起来不错。大部分图像都在背景中。但是,在“滚动和包含模式”下,图像不会覆盖整个背景,而是它的正常高度。我认为这是因为我使用“包含”作为背景大小,但是,将大小更改为“覆盖”或百分比仍然不会使图像在滚动时看起来与固定时看起来相同

当从 background attachment:scroll 切换到 background-attachment: fixed 时,是否可以让背景图像显示相同的大小?

这是一个JSFiddle演示问题:单击按钮演示图像如何固定 + 覆盖和滚动 + 包含。我试图让图像看起来像它目前固定+封面的方式,但没有被固定。

<section class="fullPage" style="background-image: url('https://img00.deviantart.net/d899/i/2013/030/e/b/jumping_clouds_by_tsharna-d5t830c.jpg')">


    <article class="content article" >
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. </p>

<p>Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero. Sed dignissim lacinia nunc. Curabitur tortor. Pellentesque nibh. Aenean quam. In scelerisque sem at dolor. Maecenas mattis. Sed convallis tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus risus, iaculis vel, suscipit quis, luctus non, massa. </p>

<p>Fusce ac turpis quis ligula lacinia aliquet. Mauris ipsum. Nulla metus metus, ullamcorper vel, tincidunt sed, euismod in, nibh. Quisque volutpat condimentum velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam nec ante. Sed lacinia, urna non tincidunt mattis, tortor neque adipiscing diam, a cursus ipsum ante quis turpis. Nulla facilisi. Ut fringilla. Suspendisse potenti. Nunc feugiat mi a tellus consequat imperdiet. Vestibulum sapien. </p>

<p>Proin quam. Etiam ultrices. Suspendisse in justo eu magna luctus suscipit. Sed lectus. Integer euismod lacus luctus magna. Quisque cursus, metus vitae pharetra auctor, sem massa mattis sem, at interdum magna augue eget diam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi lacinia molestie dui. Praesent blandit dolor. Sed non quam. In vel mi sit amet augue congue elementum. Morbi in ipsum sit amet pede facilisis laoreet. Donec lacus nunc, viverra nec, blandit vel, egestas et, augue. Vestibulum tincidunt malesuada tellus. Ut ultrices ultrices enim. </p>

<p>Curabitur sit amet mauris. Morbi in dui quis est pulvinar ullamcorper. Nulla facilisi. Integer lacinia sollicitudin massa. Cras metus. Sed aliquet risus a tortor. Integer id quam. Morbi mi. Quisque nisl felis, venenatis tristique, dignissim in, ultrices sit amet, augue. Proin sodales libero eget ante. Nulla quam. Aenean laoreet. Vestibulum nisi lectus, commodo ac, facilisis ac, ultricies eu, pede. Ut orci risus, accumsan porttitor, cursus quis, aliquet eget, justo. </p>



    </article>
</section>


<section class="fullPage"  style="background-image: url('https://s3.amazonaws.com/s3.imagefinder.co/uploads/2017/10/07163335/man-jumping-into-the-clouds-880x880.jpg')">


    <article class="content article">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. </p>

<p>Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero. Sed dignissim lacinia nunc. Curabitur tortor. Pellentesque nibh. Aenean quam. In scelerisque sem at dolor. Maecenas mattis. Sed convallis tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus risus, iaculis vel, suscipit quis, luctus non, massa. </p>

<p>Fusce ac turpis quis ligula lacinia aliquet. Mauris ipsum. Nulla metus metus, ullamcorper vel, tincidunt sed, euismod in, nibh. Quisque volutpat condimentum velit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam nec ante. Sed lacinia, urna non tincidunt mattis, tortor neque adipiscing diam, a cursus ipsum ante quis turpis. Nulla facilisi. Ut fringilla. Suspendisse potenti. Nunc feugiat mi a tellus consequat imperdiet. Vestibulum sapien. </p>

<p>Proin quam. Etiam ultrices. Suspendisse in justo eu magna luctus suscipit. Sed lectus. Integer euismod lacus luctus magna. Quisque cursus, metus vitae pharetra auctor, sem massa mattis sem, at interdum magna augue eget diam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi lacinia molestie dui. Praesent blandit dolor. Sed non quam. In vel mi sit amet augue congue elementum. Morbi in ipsum sit amet pede facilisis laoreet. Donec lacus nunc, viverra nec, blandit vel, egestas et, augue. Vestibulum tincidunt malesuada tellus. Ut ultrices ultrices enim. </p>

<p>Curabitur sit amet mauris. Morbi in dui quis est pulvinar ullamcorper. Nulla facilisi. Integer lacinia sollicitudin massa. Cras metus. Sed aliquet risus a tortor. Integer id quam. Morbi mi. Quisque nisl felis, venenatis tristique, dignissim in, ultrices sit amet, augue. Proin sodales libero eget ante. Nulla quam. Aenean laoreet. Vestibulum nisi lectus, commodo ac, facilisis ac, ultricies eu, pede. Ut orci risus, accumsan porttitor, cursus quis, aliquet eget, justo. </p>



    </article>
</section>




.fullPage{
    width:100%;
    min-height:100%;
    background-attachment:scroll;
    -webkit-background-size: contain;
    -moz-background-size: contain;
    -o-background-size: contain;
    background-size: contain;
    background-repeat: no-repeat;
    padding-bottom:100px;

}

.content{
    margin-left:10%;
    margin-right:10%;
}

.article{
    background-color:white;
    padding:3%;
}

最佳答案

检查是否解决了:

$('.fullPage').each(function(i){
      $(this).css({
        "background-attachment":"scroll",
        "background-size":"cover",
        "-webkit-background-size":"cover",
        "-moz-background-size":"cover",
        "-o-background-size":"cover"
      });
})

JSFiddle Example

关于javascript - 从滚动切换到固定时如何让背景图像保持不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47603230/

相关文章:

html - Gmail 从电子邮件中剥离链接颜色?

html - 在 Mailchimp 事件中使用 Font Awesome 图标

javascript - 如何使用 font Awesome 增加加载图标的字体大小

javascript - 在 $.each() 函数之外访问 JavaScript 变量

javascript - 如何在文本框中显示 JavaScript 函数返回?

jquery - 如何延迟 jQuery 函数?

html - 将鼠标悬停在 li 上时更改文本颜色

javascript - 无法弄清楚为什么我的 change(...) 事件处理程序在这种情况下不起作用

javascript - 获取点击行的id

javascript - 使用唯一 id 动态附加 html 并使用 Jquery 删除正确的 html