简单的JQuery Lazyload示例

时间:2017-12-22 21:02:01

标签: jquery lazyload

我正在尝试获取lazyload运行的基本示例,因此仅在单击按钮时才会加载图像。

https://jsfiddle.net/5rbhsmmc/3/

HTML

This text and 
<button class="frequently_asked">this button</button><br><br>
Image to be displayed only when the button is clicked.
<img class="lazyload" src="[image source]"/>

的javascript

$('.frequently_asked').click(function() {
$('.lazyload').lazy({
bind: "event",
delay: 0
});
})

感谢任何指导

1 个答案:

答案 0 :(得分:2)

您可以将src设置为数据属性,然后在按下按钮时将其复制到图像源。

$('.frequently_asked').click(function() {
    lazyLoadImages( $('.lazyload') );
});

var setImageSrcFromDataAttribute = function( imageElement ) {
    let imageUrl = imageElement.data( 'src' );
    imageElement.attr('src', imageUrl);
}

var lazyLoadImages = function( imageElements ) {
    imageElements.each( function() {
        setImageSrcFromDataAttribute( $( this ) );
    });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
This text and
<button class="frequently_asked">this button</button><br><br> Images to be displayed only when the button is clicked.
<img class="lazyload" data-src="http://via.placeholder.com/350x150" />
<img class="lazyload" data-src="http://via.placeholder.com/400x200" />
<img class="lazyload" data-src="https://docs.google.com/drawings/d/e/2PACX-1vTb39GuFAvCPzFXXkPfdOMbS50Si5IN2OudxLQNyTxLzuOu5uVeDnEeZXTX9ie04nsXSYBQEjckQPMg/pub?w=986&h=691" style='width:100%;max-width: 700px;' />