最近很多小伙伴都在问js点击加载更多可以增加几条数据的显示和js点击加载更多可以增加几条数据的显示这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展ajax实现点击加载更多数据图片(
最近很多小伙伴都在问js点击加载更多可以增加几条数据的显示和js点击加载更多可以增加几条数据的显示这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展ajax实现点击加载更多数据图片(预加载)、ajax点击加载更多数据图片(预加载)、angularjs实现点击加载更多、html ajax请求 php 下拉 加载更多数据 (也可点击按钮加载更多)等相关知识,下面开始了哦!
本文目录一览:- js点击加载更多可以增加几条数据的显示(js点击加载更多可以增加几条数据的显示)
- ajax实现点击加载更多数据图片(预加载)
- ajax点击加载更多数据图片(预加载)
- angularjs实现点击加载更多
- html ajax请求 php 下拉 加载更多数据 (也可点击按钮加载更多)
js点击加载更多可以增加几条数据的显示(js点击加载更多可以增加几条数据的显示)
<div class="list">
<div class="one">
<div class="img">
<img src="../img/b6c.png"/>
</div>
<div class="infor">
<p class="detail">啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</p>
<p class="time">2018-6-28</p>
</div>
</div>
<div class="one">
<div class="img">
<img src="../img/lunbo3.png"/>
</div>
<div class="infor">
<p class="detail">哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈啊哈哈哈哈哈啊啊啊啊啊啊啊啊啊啊啊</p>
<p class="time">2018-6-28</p>
</div>
</div>
</div>
<div class="more">加载更多</div>
在一个项目中,需要点击更多,之后显示更多的数据,不是获取当前的页面的高度自动加载的 所以算不上懒加载,是js控制的
上面是一些页面的代码
下面是css样式
.newcenter .detail .list {
overflow: hidden;
}
.newcenter .detail .list .one {
margin-top: 0.2rem;
height: 1.68rem;
display: flex;
justify-content: space-between;
}
.newcenter .detail .list .one .img {
width: 1.41rem;
height: 1.28rem;
}
.newcenter .detail .list .one .img img {
width: 1.41rem;
height: 1.28rem;
}
.newcenter .detail .list .one .infor {
width: 5.56rem;
position: relative;
}
.newcenter .detail .list .one .infor .detail {
margin-top: 0.1rem;
}
.newcenter .detail .list .one .infor .detail {
font-size: 0.18rem;
font-family: MicrosoftYaHei;
font-weight: bold;
color: rgba(97, 97, 97, 1);
}
.newcenter .detail .list .one .infor .time {
font-size: 0.18rem;
font-family: MicrosoftYaHei;
font-weight: bold;
color: rgba(173, 173, 173, 1);
text-align: right;
position: absolute;
top: 1.3rem;
right: 0;
}
.newcenter .more{
width: 2.2rem;
height: 0.8rem;
margin: 0 auto;
font-size: 0.24rem;
background: #A9010A;
border-radius: 0.2rem;
text-align: center;
line-height: 0.8rem;
color: #FFFFFF;
margin-top: 0.5rem;
}
具体的js的如下:
var arr = $(''.detail .list .one'').length; //新闻的长度
var textArr =[]; //新闻列表信息
var arr =[]; //每次显示的内容
var num = 1; //点击次数
//获取新闻列表信息
$(''.detail .list .one'').each(function(index){
var t = $(this).html();
textArr.push(t)
})
//初始化显示的几条新闻信息
for(var i = 0; i<3;i++){
var txt = "<divone''>"+textArr[i]+"</div>"
arr.push(txt);
}
//页面初始化渲染
$(''.detail .list'').html(arr);
//点击加载更多
$(''#more'').click(function(){
num++;
for(var i = arr.length + 1; i < 3 * num; i++) {
if(arr.length< textArr.length){
var txt = "<divone''>" + textArr[i] + "</div>"
arr.push(txt)
}else{
$(this).html(''没有更多了'');
return;
}
}
$(''.detail .list'').html(arr);
})
职场小白,有不正确的或者有更多的可以提意见 耶
ajax实现点击加载更多数据图片(预加载)
本文给大家介绍ajax如何实现点击加载更多数据图片(预加载)效果的,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ajax点击加载更多数据--博客园--勇淘未来</title> <script type="text/javascript" src="jquery-1.11.1.min.js"></script> <style> *{padding:0;margin:0;} .box {margin: 100px auto;width: 550px;} ul li {width:550px;list-style: none;} ul li span{text-align:center;display:block;} .clear {clear: both;} .load {text-align: center;display: none;margin-top:50px;color:#ccc;} .end{display:none;color:#ccc;} </style> </head> <body> <div> <ul></ul> <div></div> <div>加载中...</div> <div> <button>查看更多图片</button> <div>没有更多了</div> </div> </div> <script> var num = 0; var start = 0; var size = 2; $.ajax({ url: "dataNews.json", type: "get", success: function(res){ var str = ""; for(var i = 0;i < 2;i++){ str += "<li><img src=" + res[i].img + " alt="ajax实现点击加载更多数据图片(预加载)" ><span>"+ res[i].title +"</span></li>"; } $(".box ul").append(str); }, error:function(){ console.log(errors); } }) $(".btn").click(function(){ $(".load").show(); setTimeout(function(){ $(".load").hide(); num++; console.log(num); start = num * size; $.ajax({ url:"dataNews.json", type:"get", success:function(res){ var sum = res.length; if(start + size > sum) { size = sum - start; $(".btn").css("display","none"); $(".end").css("display","block"); } var str = ""; for(var i = start;i<(start + size);i++) { str += "<li><img src=" + res[i].img + " alt="ajax实现点击加载更多数据图片(预加载)" ><span>"+ res[i].title +"</span></li>"; } console.log(start + size); $("ul").append(str); } }); },300) } ) </script> </body> </html>
本地测试datanews.json文件:
[ { "img":"img/sina.jpg","title":"百度音乐1" } , { "img":"img/tengxu.jpg","title":"百度音乐2" } , { "img":"img/sina.jpg","title":"百度音乐3" } , { "img":"img/tengxu.jpg","title":"百度音乐4" } , { "img":"img/tengxu.jpg","title":"百度音乐5" } , { "img":"img/sina.jpg","title":"百度音乐6" } , { "img":"img/tengxu.jpg","title":"百度音乐7" } , { "img":"img/sina.jpg","title":"百度音乐8" } , { "img":"img/tengxu.jpg","title":"百度音乐9" } , { "img":"img/sina.jpg","title":"百度音乐10" } , { "img":"img/tengxu.jpg","title":"百度音乐11" } , { "img":"img/sina.jpg","title":"百度音乐12" } , { "img":"img/tengxu.jpg","title":"百度音乐13" } , { "img":"img/sina.jpg","title":"百度音乐14" } , { "img":"img/tengxu.jpg","title":"百度音乐15" } ]
点击更多图片,加载2条数据,当数据加载完了,就显示 “没有更多了”
总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关教程请访问AJAX视频教程!
以上就是ajax实现点击加载更多数据图片(预加载)的详细内容,更多请关注php中文网其它相关文章!
ajax点击加载更多数据图片(预加载)
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>ajax点击加载更多数据--博客园--勇淘未来</title>
6 <script type="text/javascript" src="jquery-1.11.1.min.js"></script>
7 <style>
8 *{padding:0;margin:0;}
9 .box {margin: 100px auto;width: 550px;}
10 ul li {width:550px;list-style: none;}
11 ul li span{text-align:center;display:block;}
12 .clear {clear: both;}
13 .load {text-align: center;display: none;margin-top:50px;color:#ccc;}
14 .end{display:none;color:#ccc;}
15 </style>
16 </head>
17 <body>
18 <div>
19 <ul></ul>
20 <div></div>
21 <div>加载中...</div>
22 <div>
23 <button>查看更多图片</button>
24 <div>没有更多了</div>
25 </div>
26 </div>
27 <script>
28 var num = 0;
29 var start = 0;
30 var size = 2;
31 $.ajax({
32 url: "dataNews.json",
33 type: "get",
34 success: function(res){
35 var str = "";
36 for(var i = 0;i < 2;i++){
37 str += "<li><img src=" + res[i].img + "><span>"+ res[i].title +"</span></li>";
38 }
39 $(".box ul").append(str);
40 },
41 error:function(){
42 console.log(errors);
43 }
44 })
45 $(".btn").click(function(){
46 $(".load").show();
47 setTimeout(function(){
48 $(".load").hide();
49 num++;
50 console.log(num);
51 start = num * size;
52 $.ajax({
53 url:"dataNews.json",
54 type:"get",
55 success:function(res){
56 var sum = res.length;
57 if(start + size > sum) {
58 size = sum - start;
59 $(".btn").css("display","none");
60 $(".end").css("display","block");
61 }
62 var str = "";
63 for(var i = start;i<(start + size);i++) {
64 str += "<li><img src=" + res[i].img + "><span>"+ res[i].title +"</span></li>";
65 }
66 console.log(start + size);
67 $("ul").append(str);
68 }
69 });
70 },300)
71 }
72 )
73 </script>
74 </body>
75 </html>
本地测试dataNews.json文件:
[ {
"img":"img/sina.jpg","title":"百度音乐1"
}
, {
"img":"img/tengxu.jpg","title":"百度音乐2"
}
, {
"img":"img/sina.jpg","title":"百度音乐3"
}
, {
"img":"img/tengxu.jpg","title":"百度音乐4"
}
, {
"img":"img/tengxu.jpg","title":"百度音乐5"
}
, {
"img":"img/sina.jpg","title":"百度音乐6"
}
, {
"img":"img/tengxu.jpg","title":"百度音乐7"
}
, {
"img":"img/sina.jpg","title":"百度音乐8"
}
, {
"img":"img/tengxu.jpg","title":"百度音乐9"
}
, {
"img":"img/sina.jpg","title":"百度音乐10"
}
, {
"img":"img/tengxu.jpg","title":"百度音乐11"
}
, {
"img":"img/sina.jpg","title":"百度音乐12"
}
, {
"img":"img/tengxu.jpg","title":"百度音乐13"
}
, {
"img":"img/sina.jpg","title":"百度音乐14"
}
, {
"img":"img/tengxu.jpg","title":"百度音乐15"
}
]
点击更多图片,加载2条数据,当数据加载完了,就显示 “没有更多了”
欢迎大家留言评论
转载于猿2048:➵《ajax点击加载更多数据图片(预加载)》
angularjs实现点击加载更多
做个人博客时遇到这个需求,首先说下遇到难点:
1.动态插入指令,angular并不能正确渲染,而是以普通的html标签插入,也没有class=”ng-scope”,这与angularjs的加载顺序有关,下面再说。
2.angualr里的$http服务是异步的,没有同步的概念,当用户不停的点击“加载更多”按钮时,数据如果还未请求过来,等响应完毕后会出现相同的好几组数据。
对于第一点:
(图片来自http://my.oschina.net/brant/blog/419641)
因为第一次运行已结束了,所以需要重新编译
//需要注入$compile服务 var el = $compile("<articleblock ng-repeat='article in articles" + i + "'></articleblock>")($scope); //重新compile一下,再append $("#main").append(el);
具体如下:directive.js
indexAPP.directive('pagination',function($compile) { return { restrict: 'AEMC',// E = Element,A = Attribute,C = Class,M = Comment scope: true,template: "<input type='button' value='加载更多'/>",link: function($scope,iElm,iAttrs,controller) { var i =1; //计数,第几次加载 $("pagination input").bind("click",function() { $("pagination input").attr("disabled","true"); $("pagination input").val("正在加载....败着急"); $scope.getAbstract(); var el = $compile("<articleblock ng-repeat='article in articles" + i + "'></articleblock>")($scope); //重新compile一下,再append i++; $("#main").append(el); }) } } });
对于第二点:查阅资料发现可以用promise模拟同步,但我选择了投机取巧的解决方案,就是,在第一次未加载完之前,把按钮设为禁用,需要用到then()
article_controller.js
articleModule.controller('ArticleCtrl',function($scope,$http) { var offset = 0,//当前页数 limit = 2,//一页多少篇 i = 0; //第几次加载 $scope.getAbstract = function() { $http.get('api/getPostAbstract',{ params: { offset,limit } }) .success(function(data,status,headers,config) { if (i == 0) { $scope.articles = data; i++; } else if (i >= 1) $scope["articles" + i++] = data; offset = offset + limit; }).error(function(data,config) { throw new Error('Something went wrong...'); }).then(function(result) { $("pagination input").removeAttr("disabled"); $("pagination input").val("点击加载更多"); if(result.data.length<=0) $("pagination input").val("没有更多文章啦~"); }); } $scope.getAbstract(); });
article.html
<article class="block post" id="{{article.id}}"> <span class="round-date"> <span class="month" ng-bind="(article.post_time |dateUtil|date:'M')+'月'"></span> <span class="day" ng-bind="article.post_time |dateUtil| date:'d'"></span> </span> <header> <p class="title"> <a href="articleDetail.html?{{article.id}}" ng-bind="article.title" target="_blank"></a> </p> <p class="article-Meta"> <i class="fa fa-paper-plane-o" ng-bind="article.post_time | date:'yyyy-MM-dd'"></i> <i class="fa fa-eye" ng-bind="article.pageviews"></i> <i class="fa fa-comment-o" ng-bind="article.comments"></i></p> <div class="tag-Meta"> <div class="tag" ng-repeat="tag in article.tags" ng-bind="tag"></div> </div> </header> <div class="article-content animate-show" ng-bind-html="article.post_abstract | to_trusted" ng-show="showMe"></div> <span class="fa fa-angle-double-up compress" ng-click="toggle()"></span> </article>
我知道我这里通过两边都设置i,不大好,但也暂时找不到好办法,我想在then里面return当前的i,但是好像实现不了,嗯嗯嗯,纠结,而且http服务貌似应该放在factory方便使用? 我这样功能都能实现,就是感觉代码质量不够高,希望能早到更好的办法
html ajax请求 php 下拉 加载更多数据 (也可点击按钮加载更多)
<input type="hidden" class="total_num" id="total" value="{$total}">
<div class="diy-richtext messagebox" style="padding-top:10px;">
{loop $messagelist $k $v}
<div class="message" rel=''{$k}''>
<p class="message_icon"><img width="21" alt="" height="20" style="width: 20px; height: 20px;" src="../addons/ewei_shopv2/static/img/icon{$v[''cateid'']}.png" data-lazyloaded="true"></p>
<p class="message_cate" > {$v[''cate_name'']}</p>
<p class="message_title" >{$v[''title'']}
<span class="message_time" >{php echo date(''Y-m-d H:i:s'',$v[''createtime'']);}</span><br>
<p >{$v[''detail'']}<br>
</p><p><br>
</p>
</div>
{/loop}
</div>
<div class="fui-picturew row-4" onclick="getmore()" >加载更多..</div>
$(function() {
$(window).scroll(function(){
var scrollTop = $(this).scrollTop(); //滚动条距离顶部的高度
var scrollHeight = $(document).height(); //当前页面的总高度
var clientHeight = $(this).height(); //当前可视的页面高度
if(scrollTop + clientHeight >= scrollHeight){ //距离顶部+当前高度 >=文档总高度 即代表滑动到底部 count++; //每次滑动count加1
// filterData(serviceTypeId,industryId,cityId,count); //调用筛选方法,count为当前分页数
getmore();
}
});
});
function getmore(){
var total = $(''#total'').val()
FoxUI.loader.show(''mini'');
var data = {''classid'': "{$classitem[''id'']}", ''merchid'': "{$item[''id'']}", ''k'': total};
$.ajax({
url: "{php echo mobileUrl(''shop/category/getmoreMessage'')}",
data: data,
cache: false
}).done(function (result) {
var data = jQuery.parseJSON(result);
FoxUI.loader.hide();
if (data.status == 1) {
if(data.result.code == 1){
$(''.messagebox'').append(data.result.html);
$(''#total'').val(data.result.total);
}else if(data.result.code == 2){
FoxUI.toast.show (''暂无更多'')
}
} else {
alert("微信接口繁忙,请稍后再试!");
}
});
}
public function main()//显示页面
{
global $_W;
$total = 6;//默认加载条数
$limit = " limit 0,$total";
$messagelist = pdo_fetchall(''SELECT * FROM '' . tablename(''ewei_shop_merch_message'').''where displayorder = :displayorder order by id desc''.$limit, array('':displayorder''=>0));
// var_dump($messagelist);exit;
include $this->template();
}
public function getmoreMessage()//ajax下拉页面
{
global $_W;
global $_GPC;
$rel = isset($_GPC[''k''])?$_GPC[''k'']:0;
$where = "1" ;
$offset = $rel;
$offnum = 4;
$where .= " order by id desc" ;
$where .= " limit $offset,$offnum" ;
$total = $offset + $offnum;
$list = pdo_fetchall(''SELECT * FROM '' . tablename(''ewei_shop_merch_message'') . '' WHERE ''.$where);
$html = '''';
foreach ($list as $k => $v) {
$cateid = $v[''cateid''];
$html.=''<divrel="''.$k.''">
<p><img width="21" alt="" height="20"src="../addons/ewei_shopv2/static/img/icon''.$cateid.''.png" data-lazyloaded="true"></p>
<p> ''.$v[''cate_name''].''</p>
<p>''.$v[''title''].''
<span>''.date(''Y-m-d H:i:s'',$v[''createtime'']).''</span><br>
<p >''.$v[''detail''].''<br>
</p><p><br>
</p>
</div>'';
}
if($list){
$arr = array(''code'' => 1, ''msg'' => '''',''html''=>$html,''total''=>$total);
show_json(1, $arr);
}else{
$arr = array(''code'' => 2, ''msg'' => ''暂无更多.'',);
show_json(1, $arr);
}
}
public function getmoreMessage()//ajax下拉页面
{
global $_W;
global $_GPC;
$rel = isset($_GPC[''k''])?$_GPC[''k'']:0;
$where = "1" ;
$offset = $rel;
$offnum = 4;
$where .= " order by id desc" ;
$where .= " limit $offset,$offnum" ;
$total = $offset + $offnum;
$list = pdo_fetchall(''SELECT * FROM '' . tablename(''ewei_shop_merch_message'') . '' WHERE ''.$where);
$html = '''';
foreach ($list as $k => $v) {
$cateid = $v[''cateid''];
$html.=''<divrel="''.$k.''">
<p><img width="21" alt="" height="20"src="../addons/ewei_shopv2/static/img/icon''.$cateid.''.png" data-lazyloaded="true"></p>
<p> ''.$v[''cate_name''].''</p>
<p>''.$v[''title''].''
<span>''.date(''Y-m-d H:i:s'',$v[''createtime'']).''</span><br>
<p >''.$v[''detail''].''<br>
</p><p><br>
</p>
</div>'';
}
if($list){
$arr = array(''code'' => 1, ''msg'' => '''',''html''=>$html,''total''=>$total);
show_json(1, $arr);
}else{
$arr = array(''code'' => 2, ''msg'' => ''暂无更多.'',);
show_json(1, $arr);
}
}
关于js点击加载更多可以增加几条数据的显示和js点击加载更多可以增加几条数据的显示的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于ajax实现点击加载更多数据图片(预加载)、ajax点击加载更多数据图片(预加载)、angularjs实现点击加载更多、html ajax请求 php 下拉 加载更多数据 (也可点击按钮加载更多)等相关知识的信息别忘了在本站进行查找喔。
本文标签: