2016-09-23 62 views
0

我想在列表视图中添加加载gif时。我有一个列表视图,其中我们选择一个类别,然后创建一个新的列表视图,其中所有数据通过ajax调用&我使用select2作为多选项选择,但是当我选择数据时需要大量时间来填充当时的列表页面在加载时变得无响应。在列表视图上加载gif时,它的填充

所以我想让用户知道它的加载数据,所以他必须等待。所以我需要你的帮助为listview的一些例子。

回答

-1

let more = document.querySelector("button"); 
 
let show = document.querySelector(".show"); 
 
let loading = document.querySelector(".loading"); 
 

 

 
more.addEventListener("click",function(){ 
 
\t 
 
\t loading.classList.add("show"); 
 

 
    let xhttp = new XMLHttpRequest(); 
 
    xhttp.onreadystatechange = function() { 
 
    if (this.readyState == 4 && this.status == 200) { 
 
     let back = xhttp.response; 
 
     back = JSON.parse(back); 
 
     let imgSrc = back.results[0].picture.large; 
 
     
 
     let imgEl = document.createElement("img"); 
 
     imgEl.src = imgSrc; 
 
     show.appendChild(imgEl); 
 
\t \t \t loading.classList.remove("show"); 
 
     
 
    } 
 
    }; 
 
    xhttp.open("GET", "https://randomuser.me/api/", true); 
 
    xhttp.send(); 
 

 
});
img{ 
 
    
 
    display: inline; 
 
    
 
} 
 

 
.more{ 
 
    
 
    position: fixed; 
 
    top: 1em; 
 
    right: 5em; 
 
    background: skyblue; 
 
    color: #FFF; 
 
    padding: 0.5em; 
 
    border: none; 
 
    cursor: pointer; 
 
    outline: none; 
 
} 
 

 
.loading{ 
 
\t width: 10em; 
 
\t height: 10em; 
 
\t display: none; 
 
\t position: fixed; 
 
\t top: 5em; 
 
\t right: 1em; 
 
\t background: #212323; 
 
\t padding: 0.5em; 
 
} 
 

 
.loading.show{ 
 
\t display: block; 
 
}
<img src="https://unsplash.it/300/300/?random" /> 
 
<div class="show"></div> 
 
<button class="more">More</button> 
 
<img src="http://www.lettersmarket.com/uploads/lettersmarket/blog/loaders/common_metal/ajax_loader_metal_512.gif"class="loading">

+0

感谢您的回答,真的很感激。你可以修改代码,以便它不使用按钮来显示GIF,而是当用户在列表视图上选择一个选项时,它会在填充新的列表视图时自动启动 – dsaleem91

+0

您是否指用户几乎滚动页面底部,那么它会提出请求? –

+0

我的意思是当listview最初加载时向用户显示数据正在加载,而不是当用户滚动浏览数据时 – dsaleem91