| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 
 | <!DOCTYPE html><html lang="en">
 <head>
 <meta charset="UTF-8">
 <title>Title</title>
 </head>
 <style>
 img {
 display: block;
 margin: 0 auto;
 height: 500px;
 }
 </style>
 <body>
 <div>
 <img src="" data-original="http://p55grr0fu.bkt.clouddn.com/%E6%95%99%E5%B8%88%20%281%29.jpg" lazyload="true">
 <img src="" data-original="http://p55grr0fu.bkt.clouddn.com/%E6%95%99%E5%B8%88%20%2810%29.jpg" lazyload="true">
 <img src="" data-original="http://p55grr0fu.bkt.clouddn.com/%E6%95%99%E5%B8%88%20%2811%29.jpg" lazyload="true">
 <img src="" data-original="http://p55grr0fu.bkt.clouddn.com/%E6%95%99%E5%B8%88%20%2812%29.jpg" lazyload="true">
 <img src="" data-original="http://p55grr0fu.bkt.clouddn.com/%E6%95%99%E5%B8%88%20%2814%29.jpg" lazyload="true">
 <img src="" data-original="http://p55grr0fu.bkt.clouddn.com/%E6%95%99%E5%B8%88%20%2818%29.jpg" lazyload="true">
 <img src="" data-original="http://p55grr0fu.bkt.clouddn.com/%E6%95%99%E5%B8%88%20%2826%29.jpg" lazyload="true">
 </div>
 
 <script>
 var viewHeight = document.documentElement.clientHeight
 
 function lazyload() {
 var eles = document.querySelectorAll('img[data-original][lazyload]')
 console.log(eles[0].getBoundingClientRect())
 Array.prototype.forEach.call(eles, function (item, index) {
 var rect
 if (item.dataset.original === '') return
 
 rect = item.getBoundingClientRect()
 console.log(rect.bottom, '--', rect.top, '--', viewHeight)
 if (rect.bottom >= 0 && rect.top < viewHeight) {
 +function () {
 var img = new Image()
 img.src = item.dataset.original
 img.onload = function () {
 item.src = img.src
 }
 item.removeAttribute('data-original')
 item.removeAttribute('lazyload')
 }()
 }
 })
 }
 
 lazyload()
 document.addEventListener('scroll', lazyload)
 </script>
 </body>
 </html>
 
 |