Javascript 如何在没有jQuery或延迟加载的情况下延迟背景图像
基于Patrick Sexton,我希望以与img相同的方式延迟背景图像: 如何使用背景进行同样的操作Javascript 如何在没有jQuery或延迟加载的情况下延迟背景图像,javascript,Javascript,基于Patrick Sexton,我希望以与img相同的方式延迟背景图像: 如何使用背景进行同样的操作 <div style="background:url(your-image-here)"></div> 您也可以这样做,但是您可以在init函数中更改背景而不是源代码 <div id='my-div' style="" data-src="your-image-here"></div> <script> function init
<div style="background:url(your-image-here)"></div>
您也可以这样做,但是您可以在init函数中更改背景而不是源代码
<div id='my-div' style="" data-src="your-image-here"></div>
<script>
function init() {
var backgroundDefer = document.getElementById('my-div');
if(backgroundDefer.getAttribute('data-src')) {
backgroundDefer.style.background="url("+backgroundDefer.getAttribute('data-src')+")";
}
}
window.onload = init;
</script>
如果您只想在纯JS页面加载后设置背景,请使用:
window.onload="myFunction()";
myFunction在其中进行加载。所需的更改只是我们选择元素的方式 queryselectoral'div[data src]' 我们如何在这里设置值而不是设置src属性,我们需要设置style属性 编辑:我甚至会在这里避免JavaScript中的属性检查,因为我们的选择器会这样做 在此处标记编辑代码: 函数初始化{ var imgDefer=document.queryselectoral'div[data src]'; var style=背景图像:url{url}; 对于变量i=0;i
<div id="my-div" class="parallax-background" data-stellar-background-ratio="0.7" data-src="https://d5y2y5rl4e57i.cloudfront.net/GWL_atl-108.jpg" style="background-image:url('')"></div>
<script>
function init() {
var backgroundDefer = document.getElementById('my-div');
//have to use document.getElementById in order to use getAttribute() function
if(backgroundDefer.getAttribute('data-src')) {
backgroundDefer.style="background-image:url("+backgroundDefer.getAttribute('data-src')+")";
}
}
window.onload = init;
</script>
我尝试将其用于一个类var backgroundDefer=document.getElementsByClassName'class-image';但它不起作用。Uncaught TypeError:backgroundDefer.getAttribute不是一个函数,您能告诉我如何只选择class=deferImage的div吗?document.getElementsByClassNamedeferImage可用于此目的;还要检查选择器的浏览器兼容性-
<div id="my-div" class="parallax-background" data-stellar-background-ratio="0.7" data-src="https://d5y2y5rl4e57i.cloudfront.net/GWL_atl-108.jpg" style="background-image:url('')"></div>
<script>
function init() {
var backgroundDefer = document.getElementById('my-div');
//have to use document.getElementById in order to use getAttribute() function
if(backgroundDefer.getAttribute('data-src')) {
backgroundDefer.style="background-image:url("+backgroundDefer.getAttribute('data-src')+")";
}
}
window.onload = init;
</script>