模仿百度分页(Ajax异步加载)

前端之家收集整理的这篇文章主要介绍了模仿百度分页(Ajax异步加载)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
做法:
1.先在界面填几块div,处理一下样式,不过因为只是Demo,所以也就没做太多处理了。
2.通过Ajax异步加载后台分页后的数据。
3.前台接收到数据后,动态生成标签,并对标签进行渲染。
4.动态生成标签的时候需要注意点。
  1. <html>
  2. <body>
  3. <div class="bc_bg">
  4. <div class="menu">
  5. <div class="list_bg">
  6. <table border="1">
  7. </table>
  8. </div>
  9. <div class="bt_bg">
  10.  
  11. </div>
  12. </div>
  13. </div>
  14. </body>
  15. </html>
CSS代码
  1. .now-page{}
  2. body{
  3. margin-top:0px;
  4. margin-bottom:0px;
  5. background-color:#CCCCCC;
  6. }
  7. .menu{
  8. padding-top:100px;
  9. width:300px;
  10. height:300px;
  11. margin:auto auto auto auto;
  12. }
  13. .bc_bg{
  14. height:900px;
  15. width:90%;
  16. margin:auto auto auto auto;
  17. background-color:#FFFFFF;
  18. }
  19. /*显示列表样式设置*/
  20. .list_bg{
  21. padding-bottom:50px;
  22. }
  23. table{
  24. width:200px;
  25. height:300px;
  26. }
  27.  
  28. /*分页按钮样式设置*/
  29. .bt_bg{
  30. width:290px;
  31. height:60px;
  32. /*background-color:blue;*/
  33. }
  34.  
  35. /*button样式设置*/
  36. .tagbg{
  37. float:left;
  38. height:60px;
  39. width:50px;
  40. position:relative;
  41. /*background-color:red;*/
  42. }
  43. .ud{
  44. float:left;
  45. height:60px;
  46. width:70px;
  47. position:relative;
  48. /*background-color:green;*/
  49. }
  50. .button{
  51. height:30px;
  52. border-style:solid;
  53. border-width:1px;
  54. color:blue;
  55. position:absolute;
  56. bottom:0px;
  57. right:0px;
  58. border-color:#DDDDDD;
  59. background-color:white;
  60. }
  61. .buttonhover{
  62. background-color:#BBFFEE;
  63. border-color:blue;
  64. }
  65. .now-page{
  66. width:50px;
  67. }
  68. .pnpage{
  69. width:70px;
  70. }


JS代码

  1. //定义一个全局变量,用于处理当用户点击上一页或者下一页的时候计算
  2. var nowPage = 0;
  3. //总页数,用户可能会对数据进行操作,所以每次加载都要重新从数据库进行计算页数
  4. var pgCount;
  5. $(document).ready(function(){
  6. getPage(0);//刚开始显示第0页
  7. $(".now-page").live("click",function() {//点击事件
  8. if (nowPage != $(this).attr("key")){
  9. getPage($(this).attr("key"));
  10. $("button").css("color","black");
  11. }
  12. });
  13. $(".prev-page").live("click",function() {
  14. //如果用户点击了上一页按钮,且当前按钮不为第0页,则跳到上一页
  15. if(nowPage >= 1){
  16. getPage(nowPage - 1);
  17. }
  18. });
  19. $(".next-page").live("click",function() {
  20. //同上
  21. if (nowPage <= (pgCount-1)){
  22. getPage(nowPage + 1);
  23. }
  24. });
  25. });
  26. /**
  27. 渲染标签
  28. */
  29. function renderingCss(){//jQuery渲染标签
  30. $(".tagbg").addClass("tagbg");
  31. $(".ud").addClass("ud");
  32. $("button").addClass("button");
  33. $(".now-page").addClass("now-page");
  34. $(".prev-page,.next-page").addClass("pnpage");
  35. //鼠标悬停样式
  36. $("button").mouSEOver(function(){
  37. $(this).css({"background-color":"#BBFFEE","border-color":"blue"});
  38. });
  39. $("button").mouSEOut(function(){
  40. $(this).css({"background-color":"white","border-color":"#DDDDDD"});
  41. });
  42. $(".index").css({"border-width":"0px","color":"black"});
  43. }
  44. /**
  45. 生成标签
  46. */
  47. function createPage(data,pagenum){
  48. nowPage = pagenum;
  49. var jsonResult = data.jsonResult;
  50. pgCount = Math.ceil(parseInt(data.count)/3);//ceil向上取整
  51. $("table").empty();
  52. $(".bt_bg").empty();
  53. $("table").append("<tr><th>username</th><th>password</th></tr>");
  54. for (var i = 0; i < jsonResult.length; i++){
  55. $("table").append("<tr><td>"+jsonResult[i].username+"</td> "+"<td>"+jsonResult[i].password+"</td></tr>");
  56. }
  57. //分页标签
  58. if (nowPage > 0){
  59. $(".bt_bg").append("<div class='ud'><button class='prev-page'><上一页</button></div>");
  60. }
  61. for (var i = 0; i < pgCount; i++){
  62. //$(".bt_bg").append("<div class='tagbg'>");
  63. if (i != nowPage){
  64. $(".bt_bg").append("<div class='tagbg'><button class='now-page' key='" + i + "'>" + (i + 1) + "</button></div>");
  65. }else{
  66. //如果是当前页,则设置当前页对应的按钮不可用
  67. $(".bt_bg").append("<div class='tagbg'><button disabled='disabled' class='now-page index' key='" + i + "'>" + (i + 1) + "</button></div>");
  68. }
  69. //$(".bt_bg").append("</div>");
  70. }
  71. if (nowPage < pgCount-1){
  72. $(".bt_bg").append("<div class='ud'><button class='next-page'>下一页></button></div>");
  73. }
  74. }
  75. function getPage(pagenum){
  76. $.ajax({
  77. data:{
  78. page: pagenum
  79. },type: "post",url: "getUser.action",dataType: "json",success: function (data){
  80. //alert(data.jsonResult[0].username);
  81. //alert(jsonResult[0].username);
  82. //alert(typeof pgCount);
  83. //alert(parseInt(data.count));String转换成int
  84. //alert(typeof parseInt(data.count));判断数据类型
  85. createPage(data,pagenum);
  86. renderingCss();
  87. },error: function (XMLHttpRequest,textStatus,errorThrown) {
  88. alert('ERROR');
  89. }
  90. });
  91. }



结果:

猜你在找的Ajax相关文章