Rumah hujung hadapan web tutorial js Melaksanakan pemuatan malas imej berdasarkan kemahiran javascript_javascript

Melaksanakan pemuatan malas imej berdasarkan kemahiran javascript_javascript

May 16, 2016 pm 03:21 PM
javascript Malas memuatkan imej

1. Definisi

Pemuatan tertunda imej juga dipanggil pemuatan malas Ia melambatkan memuatkan imej atau hanya memuatkan imej tertentu apabila syarat tertentu dipenuhi. Ia biasanya digunakan untuk halaman web dengan banyak imej. Anda boleh mengurangkan bilangan permintaan atau menangguhkan bilangan permintaan untuk mengoptimumkan prestasi.

2. Borang pembentangan

【1】Pemuatan tertunda, gunakan setTimeout atau setInterval untuk menangguhkan pemuatan Jika pengguna keluar sebelum memuatkan, ia secara semula jadi tidak akan dimuatkan.
【2】Pemuatan bersyarat, pemuatan tak segerak bermula hanya apabila syarat tertentu dipenuhi atau syarat tertentu dicetuskan.
[3] Pemuatan kawasan visual hanya memuatkan kawasan yang boleh dilihat oleh pengguna Ini terutamanya dilaksanakan dengan memantau bar skrol Secara umumnya, ia mula dimuatkan apabila ia sangat dekat dengan tepi bawah yang dilihat oleh pengguna disambungkan apabila pengguna menarik ke bawah , tidak akan ada jeda yang lama.

3. Langkah asas

【1】Semua gambar pada halaman web ditetapkan kepada gambar yang sama
【2】Tambahkan atribut data-original = "img/test.jpg" pada imej dan simpan alamat sebenar imej
【3】Apabila keadaan tertentu dicetuskan, tukar atribut src imej di kawasan itu secara automatik kepada alamat sebenar

4. Permohonan

1 Klik butang untuk memaparkan gambar

1

2

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

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<style>

body{

  margin: 0;

}

img{

  height: 100px;

  width: 100px;

}

</style>

</head>

<body>

<button>加载图片</button>

<img src="#" alt="测试" data-original = "img/test.png">

<script>

var oBtn = document.getElementsByTagName('button')[0];

var oImg = document.images[0]; 

oBtn.onclick = function(){

  oImg.src = "img/loading.gif";

  if(oImg.dataset){

    aftLoadImg(oImg,oImg.dataset.original); 

  }else{

    aftLoadImg(oImg,oImg.getAttribute("data-original"));

  }

}

function aftLoadImg(obj,url){

  var oImg = new Image();

  oImg.onload = function(){

    obj.src = oImg.src;

  }

  oImg.src = url;

}

</script> 

</body>

</html>

Salin selepas log masuk

2. Paparkan gambar dalam kawasan visual

1

2

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

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<style>

body{

  margin: 0;

}

ul{

  margin: 0;

  padding: 0;

  list-style: none;

}

img{

  border: none;

  vertical-align: middle;

}

.in{

  border: 1px solid black;

  margin: 10px;

  text-align: center;

  height: 400px;

  width: 400px;

  float: left;

}

.in img{

  height: 400px;

  width: 400px;

}

</style>

</head>

<body>

<ul class="list">

  <li class="in"><img src="img/loading.gif" alt="测试" data-original = "img/img1.gif"></li>

  <li class="in"><img src="img/loading.gif" alt="测试" data-original = "img/img2.gif"></li>

  <li class="in"><img src="img/loading.gif" alt="测试" data-original = "img/img3.gif"></li>

  <li class="in"><img src="img/loading.gif" alt="测试" data-original = "img/img4.gif"></li> 

  <li class="in"><img src="img/loading.gif" alt="测试" data-original = "img/img1.gif"></li>

  <li class="in"><img src="img/loading.gif" alt="测试" data-original = "img/img2.gif"></li>

  <li class="in"><img src="img/loading.gif" alt="测试" data-original = "img/img3.gif"></li>

  <li class="in"><img src="img/loading.gif" alt="测试" data-original = "img/img4.gif"></li>             

</ul>

 

<script>

var oBtn = document.getElementsByTagName('button')[0];

var aImages = document.images;

loadImg(aImages);

window.onscroll = function(){

  loadImg(aImages);

};

function loadImg(arr){

  for( var i = 0,len = arr.length; i < len; i++){

    if(arr[i].getBoundingClientRect().top < document.documentElement.clientHeight && !arr[i].isLoad){

      arr[i].isLoad = true;

      arr[i].style.cssText = "transition: ''; opacity: 0;"

      if(arr[i].dataset){

        aftLoadImg(arr[i],arr[i].dataset.original); 

      }else{

        aftLoadImg(arr[i],arr[i].getAttribute("data-original"));

      }

      (function(i){

        setTimeout(function(){

          arr[i].style.cssText = "transition: 1s; opacity: 1;"

        },16)

      })(i);

    }

  }

}

function aftLoadImg(obj,url){

  var oImg = new Image();

  oImg.onload = function(){

    obj.src = oImg.src;

  }

  oImg.src = url;

}

 

</script> 

</body>

</html>

Salin selepas log masuk

Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu pembelajaran semua orang dan berjaya melaksanakan pemuatan malas imej javascript.

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 pm 02:54 PM

Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata Dec 17, 2023 pm 05:30 PM

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata

Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 am 09:39 AM

Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript

Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Dec 17, 2023 pm 12:09 PM

Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Dec 17, 2023 pm 05:13 PM

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap

Bagaimana untuk menggunakan insertBefore dalam javascript Bagaimana untuk menggunakan insertBefore dalam javascript Nov 24, 2023 am 11:56 AM

Bagaimana untuk menggunakan insertBefore dalam javascript

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Jan 05, 2024 pm 01:37 PM

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah

See all articles