Rumah hujung hadapan web tutorial js 原生ajax写的上拉加载实例(图文教程)

原生ajax写的上拉加载实例(图文教程)

May 21, 2018 pm 04:20 PM
ajax memuatkan Contoh

下面我就为大家分享一篇原生ajax写的上拉加载实例,具有很好的参考价值,希望对大家有所帮助。

上拉加载的思路

1 上拉加载是要把屏幕拉到最底部的时候触发ajax事件请求数据

2.所有要获取屏幕的高度 文档的高度 和滚动的高度 下面的代码是已经做好了兼容的可以直接拿来用

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

Javascript:

alert(document.body.clientWidth);  //网页可见区域宽(body)

alert(document.body.clientHeight);  //网页可见区域高(body)

alert(document.body.offsetWidth);  //网页可见区域宽(body),包括border、margin等

alert(document.body.offsetHeight);  //网页可见区域宽(body),包括border、margin等

alert(document.body.scrollWidth);  //网页正文全文宽,包括有滚动条时的未见区域

alert(document.body.scrollHeight);  //网页正文全文高,包括有滚动条时的未见区域

alert(document.body.scrollTop);   //网页被卷去的Top(滚动条)

alert(document.body.scrollLeft);   //网页被卷去的Left(滚动条)

alert(window.screenTop);      //浏览器距离Top

alert(window.screenLeft);      //浏览器距离Left

alert(window.screen.height);    //屏幕分辨率的高

alert(window.screen.width);     //屏幕分辨率的宽

alert(window.screen.availHeight);   //屏幕可用工作区的高

alert(window.screen.availWidth);   //屏幕可用工作区的宽

  

  

  

Jquery

alert($(window).height());       //浏览器当前窗口可视区域高度

alert($(document).height());      //浏览器当前窗口文档的高度

alert($(document.body).height());    //浏览器当前窗口文档body的高度

alert($(document.body).outerHeight(true)); //浏览器当前窗口文档body的总高度 包括border padding margin

alert($(window).width());       //浏览器当前窗口可视区域宽度

alert($(document).width());      //浏览器当前窗口文档对象宽度

alert($(document.body).width());    //浏览器当前窗口文档body的宽度

alert($(document.body).outerWidth(true)); //浏览器当前窗口文档body的总宽度 包括border padding margin

Salin selepas log masuk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

//获取滚动条当前的位置

 function getScrollTop() {

  var scrollTop = 0;

  if (document.documentElement && document.documentElement.scrollTop) {

   scrollTop = document.documentElement.scrollTop;

  } else if (document.body) {

   scrollTop = document.body.scrollTop;

  }

  return scrollTop;

 }

 //获取当前可视范围的高度

 function getClientHeight() {

  var clientHeight = 0;

  if (document.body.clientHeight && document.documentElement.clientHeight) {

   clientHeight = Math.min(document.body.clientHeight, document.documentElement.clientHeight);

  } else {

   clientHeight = Math.max(document.body.clientHeight, document.documentElement.clientHeight);

  }

  return clientHeight;

 }

 //获取文档完整的高度

 function getScrollHeight() {

  return Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);

 }

Salin selepas log masuk

1

2

3

4

5

6

7

8

9

10

11

var upDown = function (opt) {

  opt = opt || {};

  var up = opt.up || function () {

  };

  window.onscroll = function () {

if (getScrollTop() + getClientHeight() == getScrollHeight()) { //距离顶部+当前高度 >=文档总高度 即代表滑动到底部

    if(is_scroll === true){ //当这个为true的时候调用up方法 ....is_scroll没看懂往下看

 up();

 }}

  }

 };

Salin selepas log masuk

3.首先要默认加载第一页,在window.onload调用upDown这个方法

1

2

3

4

5

6

window.onload = function () {

  getData();//页面加载完就显示了第一页

  upDown({

   up: getData

  });

 }

Salin selepas log masuk

4.当页面滚到底部的时候触发up()这个方法,up调用getdata这个方法.下面就是怎么获取数据了

在全局定义两个变量 var is_scroll = true;var count = 0;

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

var is_scroll = true;

var count = 0;

function getAjax() {

  var el, li;

  var xhr = new XMLHttpRequest();

  xhr.open('get', 'page' + count + '.json');

  xhr.send();

  xhr.onreadystatechange = function () {

   var loadingEnd = document.getElementById('loadingEnd');

   var dropLoad = document.getElementById('dropLoad');

   if (xhr.readyState === 4 && xhr.status === 200) {

        

    var res = xhr.responseText;

    var data = JSON.parse(res);

    allData = allData.concat(data);//新的一页拼接到后面;

    if (data.length === 0) { //当获取到的数据长度为0 说明没有count+是请求不到数据了

      is_scroll = true // 定义为true

     loadingEnd.style.display = 'block'; //显示没有数据

    }

    el = document.querySelector("#wrapper ul");

    for (var k in data) { //遍历获取到的每一条数据

     li = document.createElement('li'); // 创建节点

     li.innerHTML = "<p class=&#39;item-top&#39;><span class=&#39;item-title&#39;>" + data[k].name + "</span><span class=&#39;item-money&#39;>" + data[k].money + "</span></p><p class=&#39;item-time&#39;>" + data[k].time + "</p><p class=&#39;bottom-line&#39;></p>";

     el.appendChild(li, el.childNodes[0]);

    }

    dropLoad.style.display = &#39;block&#39;;//显示加载中

   } else { //这个可有可无 是个假的 不管请求没有请求到都会有个加载中的动画

    setTimeout(function () {

     dropLoad.style.display = &#39;none&#39;;

    }, 500)

   }

  };

 }

Salin selepas log masuk

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

<style>

  .drop-load {

   text-align: center;

   height: 80px;

   line-height: 50px;

  }

  .drop-load .loading {

   display: inline-block;

   height: 15px;

   width: 15px;

   border-radius: 100%;

   margin: 6px;

   border: 2px solid #666;

   border-bottom-color: transparent;

   vertical-align: middle;

   -webkit-animation: rotate 0.75s linear infinite;

   animation: rotate 0.75s linear infinite;

  }

  @-webkit-keyframes rotate {

   0% {

    -webkit-transform: rotate(0deg);

   }

   50% {

    -webkit-transform: rotate(180deg);

   }

   100% {

    -webkit-transform: rotate(360deg);

   }

  }

  @keyframes rotate {

   0% {

    transform: rotate(0deg);

   }

   50% {

    transform: rotate(180deg);

   }

   100% {

    transform: rotate(360deg);

   }

  }

  .loadingEnd {

   font-size: 0.3rem;

   color: black;

   width: 100%;

   height: 40px;

   text-align: center;

  }

 </style>

Salin selepas log masuk

1

2

3

4

5

6

7

8

9

10

11

<body>

<p>

 <ul>

 </ul>

</p>

<p id="dropLoad" class="drop-load" style="display: none">

 <span class="loading"></span>

 <span>加载中</span>

</p>

<p id="loadingEnd" class="loadingEnd" style="display: none">到底了</p>

</body>

Salin selepas log masuk

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

jquery+ajax怎么实现分页功能

使用JQuery操作Ajax(附案例)

jquery+ajax实现异步提交表单数据

Atas ialah kandungan terperinci 原生ajax写的上拉加载实例(图文教程). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat 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)

Ralat memuatkan pemalam dalam Illustrator [Tetap] Ralat memuatkan pemalam dalam Illustrator [Tetap] Feb 19, 2024 pm 12:00 PM

Apabila memulakan Adobe Illustrator, adakah mesej tentang ralat memuatkan pemalam timbul? Sesetengah pengguna Illustrator telah mengalami ralat ini semasa membuka aplikasi. Mesej itu diikuti dengan senarai pemalam yang bermasalah. Mesej ralat ini menunjukkan bahawa terdapat masalah dengan pemalam yang dipasang, tetapi ia juga mungkin disebabkan oleh sebab lain seperti fail Visual C++ DLL yang rosak atau fail pilihan yang rosak. Jika anda menghadapi ralat ini, kami akan membimbing anda dalam artikel ini untuk menyelesaikan masalah, jadi teruskan membaca di bawah. Ralat memuatkan pemalam dalam Illustrator Jika anda menerima mesej ralat "Ralat memuatkan pemalam" semasa cuba melancarkan Adobe Illustrator, anda boleh menggunakan yang berikut: Sebagai pentadbir

Sari kata Stremio tidak berfungsi; ralat memuatkan sari kata Sari kata Stremio tidak berfungsi; ralat memuatkan sari kata Feb 24, 2024 am 09:50 AM

Sarikata tidak berfungsi pada Stremio pada PC Windows anda? Sesetengah pengguna Stremio melaporkan bahawa sari kata tidak dipaparkan dalam video. Ramai pengguna melaporkan mengalami mesej ralat yang mengatakan "Ralat memuatkan sari kata." Berikut ialah mesej ralat penuh yang muncul dengan ralat ini: Ralat berlaku semasa memuatkan sari kata Gagal memuatkan sari kata: Ini mungkin masalah dengan pemalam yang anda gunakan atau rangkaian anda. Seperti yang dikatakan oleh mesej ralat, mungkin sambungan internet anda yang menyebabkan ralat. Jadi sila semak sambungan rangkaian anda dan pastikan internet anda berfungsi dengan baik. Selain itu, mungkin terdapat sebab lain di sebalik ralat ini, termasuk sarikata yang bercanggah, sari kata yang tidak disokong untuk kandungan video tertentu dan apl Stremio yang sudah lapuk. suka

Bagaimana untuk menyelesaikan ralat 403 yang dihadapi oleh permintaan jQuery AJAX Bagaimana untuk menyelesaikan ralat 403 yang dihadapi oleh permintaan jQuery AJAX Feb 20, 2024 am 10:07 AM

Tajuk: Kaedah dan contoh kod untuk menyelesaikan ralat 403 dalam permintaan AJAX jQuery Ralat 403 merujuk kepada permintaan bahawa pelayan melarang akses kepada sumber Ralat ini biasanya berlaku kerana permintaan itu tidak mempunyai kebenaran atau ditolak oleh pelayan. Apabila membuat permintaan jQueryAJAX, anda kadangkala menghadapi situasi ini Artikel ini akan memperkenalkan cara menyelesaikan masalah ini dan memberikan contoh kod. Penyelesaian: Semak kebenaran: Mula-mula pastikan alamat URL yang diminta adalah betul dan sahkan bahawa anda mempunyai kebenaran yang mencukupi untuk mengakses sumber tersebut.

Bagaimana untuk menyelesaikan ralat permintaan jQuery AJAX 403 Bagaimana untuk menyelesaikan ralat permintaan jQuery AJAX 403 Feb 19, 2024 pm 05:55 PM

jQuery ialah perpustakaan JavaScript popular yang digunakan untuk memudahkan pembangunan sisi klien. AJAX ialah teknologi yang menghantar permintaan tak segerak dan berinteraksi dengan pelayan tanpa memuatkan semula keseluruhan halaman web. Walau bagaimanapun, apabila menggunakan jQuery untuk membuat permintaan AJAX, anda kadangkala menghadapi 403 ralat. Ralat 403 biasanya ralat akses yang dinafikan pelayan, mungkin disebabkan oleh dasar keselamatan atau isu kebenaran. Dalam artikel ini, kami akan membincangkan cara menyelesaikan permintaan jQueryAJAX yang menghadapi ralat 403

Outlook membeku apabila memasukkan hiperpautan Outlook membeku apabila memasukkan hiperpautan Feb 19, 2024 pm 03:00 PM

Jika anda menghadapi isu beku semasa memasukkan hiperpautan ke dalam Outlook, ia mungkin disebabkan oleh sambungan rangkaian yang tidak stabil, versi Outlook lama, gangguan daripada perisian antivirus atau konflik tambahan. Faktor-faktor ini boleh menyebabkan Outlook gagal mengendalikan operasi hiperpautan dengan betul. Betulkan Outlook terhenti apabila memasukkan hiperpautan Gunakan pembetulan berikut untuk membetulkan Outlook terhenti apabila memasukkan hiperpautan: Semak alat tambah yang dipasang Kemas kini Outlook Lumpuhkan sementara perisian antivirus anda dan kemudian cuba buat profil pengguna baharu Betulkan apl Office Program Nyahpasang dan pasang semula Office Mari mulakan. 1] Semak add-in yang dipasang Mungkin add-in yang dipasang dalam Outlook menyebabkan masalah.

Bagaimana untuk mendapatkan pembolehubah daripada kaedah PHP menggunakan Ajax? Bagaimana untuk mendapatkan pembolehubah daripada kaedah PHP menggunakan Ajax? Mar 09, 2024 pm 05:36 PM

Menggunakan Ajax untuk mendapatkan pembolehubah daripada kaedah PHP adalah senario biasa dalam pembangunan web Melalui Ajax, halaman boleh diperoleh secara dinamik tanpa menyegarkan data. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Ajax untuk mendapatkan pembolehubah daripada kaedah PHP, dan memberikan contoh kod khusus. Pertama, kita perlu menulis fail PHP untuk mengendalikan permintaan Ajax dan mengembalikan pembolehubah yang diperlukan. Berikut ialah kod contoh untuk fail PHP mudah getData.php:

Bagaimana untuk menyelesaikan masalah jQuery AJAX ralat 403? Bagaimana untuk menyelesaikan masalah jQuery AJAX ralat 403? Feb 23, 2024 pm 04:27 PM

Bagaimana untuk menyelesaikan masalah jQueryAJAX ralat 403? Apabila membangunkan aplikasi web, jQuery sering digunakan untuk menghantar permintaan tak segerak. Walau bagaimanapun, kadangkala anda mungkin menghadapi kod ralat 403 apabila menggunakan jQueryAJAX, menunjukkan bahawa akses dilarang oleh pelayan. Ini biasanya disebabkan oleh tetapan keselamatan bahagian pelayan, tetapi terdapat cara untuk mengatasinya. Artikel ini akan memperkenalkan cara menyelesaikan masalah ralat jQueryAJAX 403 dan memberikan contoh kod khusus. 1. membuat

PHP lwn. Ajax: Penyelesaian untuk mencipta kandungan yang dimuatkan secara dinamik PHP lwn. Ajax: Penyelesaian untuk mencipta kandungan yang dimuatkan secara dinamik Jun 06, 2024 pm 01:12 PM

Ajax (JavaScript Asynchronous dan XML) membenarkan menambah kandungan dinamik tanpa memuatkan semula halaman. Menggunakan PHP dan Ajax, anda boleh memuatkan senarai produk secara dinamik: HTML mencipta halaman dengan elemen kontena dan permintaan Ajax menambah data pada elemen selepas memuatkannya. JavaScript menggunakan Ajax untuk menghantar permintaan kepada pelayan melalui XMLHttpRequest untuk mendapatkan data produk dalam format JSON daripada pelayan. PHP menggunakan MySQL untuk menanyakan data produk daripada pangkalan data dan mengekodnya ke dalam format JSON. JavaScript menghuraikan data JSON dan memaparkannya dalam bekas halaman. Mengklik butang mencetuskan permintaan Ajax untuk memuatkan senarai produk.

See all articles