jquery - 如何在 css3 或 jquery 中将背景图像加载为滚动

标签 jquery html css

我有一张背景图片,文件大小为 4+ MB(PNG 格式)。网站是一个单页网站,我想放置那个背景,但不知道该怎么做。

是否有任何原因可以减小大小以便网页加载速度更快,或者在 css3 中有什么方法吗?所以我可以加载图像部分作为向下滚动页面。

这是我想在网页中作为背景图片放置的图片链接。

访问http://tinypic.com/r/o5vyx5/8

请帮忙。

最佳答案

您可以检查 lazy load plugin , 但如果你更喜欢自己做,那么你可以通过在到达图像位置时添加一个 CSS 类来完成。

为此,您可以将解决方案基于 this topic并做类似的事情:

function isElementInViewport(el) {
    var rect = el.getBoundingClientRect();

    return (
    rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */
    rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */ );
}

var yourImage = $('#yourImage').get(0);

if(isElementInViewport(yourImage){
   $('#yourImage').addClass('loadImage');
}

然后在您的 CSS 中,您只需要在添加 loadImage 类时添加背景:

#yourImage{
    ...
}

#yourImage.loadImage{
    background: url(path/to/yourImage.jpg) no-repeat center;
}

关于jquery - 如何在 css3 或 jquery 中将背景图像加载为滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21628047/

相关文章:

隐藏在 Flash 横幅后面的 jQuery 日期选择器

c# - ASP.NET : Client-side validation, 服务器端操作

html - 如何通过 CSS 打破溢出的导航栏

html - 空白 :normal inside white-space:nowrap

html - 李 :hover show background image over div (small triangle)

javascript - jQuery.inArray 的行为不符合预期

javascript - 如何在 2 个输入之间交换值(value)

html - 只有在缩小时,网页在较小的屏幕上看起来才完美

html - block 或单行元素

html - 在 div 内对齐响应式内容