基于jquery和knockout.js 写个瀑布流异步加载分页

<div class="list-view">
    <ul>
        <li data-bind="foreach:datalst">
            <div class="item border clearfix">
                <div class="face fl">
                    <a target="_blank" data-bind="attr:{‘title‘:userInfo.username}"  href="javascript:void(0)">
                        <img data-bind="attr:{‘src‘:userInfo.myImg}"   class="circle-radius">
                    </a>
                </div>
                <div class="cont">
                    <div class="detail">
                        <div class="info">
                            <a class="nickname" data-bind="text:userInfo.username" href="javascript:void(0)" target="_blank"></a>
                        </div>
                        <div class="time" data-bind="text:ctime"></div>
                        <div class="text" data-bind="html:content">

                        </div>
                    </div>
                    <div class="handle">
                        <ul class="clearfix">
                            <li>
                                <a href="javascript:void(0)"><i class="icon icon-share"></i>分享</a>
                            </li>
                            <li>
                                <a href="javascript:void(0)"><i class="icon icon-review"></i>评论<em>24</em></a>
                            </li>
                            <li>
                                <a href="javascript:void(0)"><i class="icon icon-thumb"></i>赞<em>24</em></a>
                            </li>
                            <li>
                                <a href="javascript:void(0)"><i class="icon icon-coin"></i>打赏</a>
                            </li>
                            <li>
                                <a href="javascript:void(0)"><i class="icon icon-collect"></i>收藏</a>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
        </li>
    </ul>
    <p id="a_load_more" class="text_align" style="background: black;" data-bind="click:ajaxGetCommentByPageNum">
        加载更多
    </p>
</div>
<script>
    $(document).ready(function () {
        var ViewModel = function () {
            var self = this;
            self.pending = 0;//是否正在请求数据,1表示不能发,0表示可以在发请求
            self.current_comment_page = 1;//当前是第几页;
            self.one_page_num = 10;//每页显示的条数
            self.datalst = ko.observableArray();//双向绑定的数据;
            self.page_max=1;//一个有多少页;
            self.ajaxGetCommentByPageNum = function () {
                if(self.page_max < self.current_comment_page){
                    layer.msg(‘数据加载完成了‘);
                    return false;
                }
                if(self.pending == 1){
                    return false;
                }
                self.pending = 1;
                $.ajax({
                    url: ‘/dksapi/weiboLive/GetSquareLive‘,
                    data:{pagecount:self.one_page_num,pageindex:self.current_comment_page,source:0},
                    type: ‘get‘,
                    contentType: "application/x-www-form-urlencoded; charset=utf-8",
                    dataType: ‘json‘,
                    success: function (json) {
                        if (json.status === ‘success‘) {
                            for(var i in json.data.dataList){
                                self.datalst.push(json.data.dataList[i]);
                            }
                            self.page_max=Math.ceil(json.data.dataMeta.totalcount / self.one_page_num);
                            self.current_comment_page++;
                            setTimeout(function () {
                                self.pending = 0;//请求结束
                            },500)
                        }
                    },
                    error: function () {
                        layer.msg(‘网络错误‘);
                    }
                });
            }
        };
        var currentViewModel = new ViewModel();
        ko.applyBindings(currentViewModel);
    })
</script>
时间: 2024-10-28 19:27:24

基于jquery和knockout.js 写个瀑布流异步加载分页的相关文章

js实现瀑布流以及加载效果

一.瀑布流是个啥? 瀑布流,是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部. 最早采用瀑布流布局的网站是Pinterest,逐渐在国内流行开来,比如我们熟知的百度图片的布局,在"很久"以前,百度图片还是需要一页一页的点击进行查看更多图片,而现在的瀑布流布局使用户查找图片更加方便. 二.瀑布流的优缺点 优点: 1.节省了页面的空间,不再需要导航和页码按钮. 2.增强了用户的体验,使用户的体验更多的是在于浏览图

基于JQuery实现滚动到页面底端时自动加载更多信息

基于JQuery实现滚动到页面底端时自动加载更多信息 关键代码: 代码如下: var stop=true; $(window).scroll(function(){ totalheight = parseFloat($(window).height()) + parseFloat($(window).scrollTop()); if($(document).height() <= totalheight){ if(stop==true){ stop=false; $.post("ajax.

jQuery8种不同的瀑布流懒加载loading效果

优化图片加载插件jQuery8种不同的瀑布流懒加载loading效果  在线预览 下载地址 实例代码 <ul class="grid effect-1" id="grid"> <li><a href="#"><img src="/api/jq/5733e33ac28cb/images/5.jpg"></a></li> <li><a hre

jquery.imgpreload.min.js插件实现页面图片预加载

页面分享地址: http://wenku.baidu.com/link?url=_-G8miwbgDmEj6miyFtjit1duJggBCJmFjR2jky_G1VftD9eS9kwGOlFWAORk2_fotM4RbzRvtcaiQu2y_BU3Gpj0rYRy_EWrgXEuFeja0q 页面分享地址:http://www.jb51.net/article/21987.htm Javascript , Jquery 实现页面图片预加载百分比展现 如果需要在页面初始加载时显示加载进度.主要是

jQuery瀑布流+无限加载图片

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> * { margin: 0px; padding: 0px; } #contianer { position: relative; font-size: 0; margin: 0 auto; }

瀑布流动态加载图片

简要截图: 项目链接:http://pan.baidu.com/s/1pK7foWb密码:epi1 github:https://github.com/shuai7boy/waterFall

重构项目之二:使用瀑布流效果加载图片

虽然最后这个功能使用了另外的插件,但是还是一下大概的原理吧,还是先上图: 功能描述: 根据不同的菜单的属性分别加载不同的数据 下拉滚动条到一定位置预加载图片,滚动条拉到最底下的时候渲染html: 鼠标移到菜单,切换各个列表图片: 鼠标移到图片上,显示详细信息: 技术实现方案:

74.手机端图片瀑布流的加载代码和效果

http://www.bin012.com/index.php?route=product/product&path=63&product_id=52 原文地址:https://www.cnblogs.com/sqyambition/p/11022935.html

JS实现动态瀑布流及放大切换图片效果(js案例)

整理了一下当时学js写的一些案例,再次体验了一把用原生JS实现动态瀑布流效果的乐趣,现在把它整理出来,需要的小伙伴可以参考一下. 该案例主要是用HTML+CSS控制样式,通过JS实现全局瀑布流以及点击图片放大.上下切换效果.HTML布局写的很简单,图片加载主要是在JS中通过访问自定义的JSON字符串来实现.动态瀑布流的原理简单理解就是把新需要加载的图片放在上一排总高度最小的图片或模块下面,实现参差不齐的多栏布局效果.具体效果如下: 做这个案例我用了之前自己封装的框架,所以小伙伴需要到我的另一篇文