【Kissy WaterFall】實行手動加載數據

前言:由于Kissy WaterFall默認是監聽滾動事件來實現數據動態加載的,但是有一些情況要用到手動加載數據。以下是使用Kissy WaterFall實現手動加載數據的方法。


最終實現效果:點擊”逛更多的商店“會動態加載數據


步驟:

  1. 當一頁數據加載完成后停止監聽滾動事件
    	//加載一頁數據完成后觸發的事件waterfall.on('addComplete', function () {S.log('after add complete!');waterfall.pause();});

  2. 為按鈕綁定重啟監聽滾動事件
    	//加載更多按鈕$("#button_container_more").on('click',function(){	waterfall.resunme();});

  3. 附錄:waterfall.pause()與water.resunme()的說明(從官網上轉載的)
    pause()函數和resunme()函數屬于插件里的waterfall.loader對象的

    resunme() :繼續開始監控scroll事件(隨時可能會動態加載)
    pause() :停止監控scroll事件(停止動態加載)

    參考網址:http://docs.kissyui.com/docs/html/api/component/waterfall/loader.html#waterfall.Waterfall.prototype.pause





出現問題:按照以上來完成的話,當點擊”加載更多“按鈕時,只是啟動了滾動監聽。意思就是,要加載數據,一要點擊按鈕,二要再次滾動鼠標。這樣的用戶體驗很差。


解決辦法:修改按鈕動作:new一個waterfall.loader,重新賦值waterfall對象,再重新綁定addComplete事件。

代碼如下:

	$("#button_container_more").on('click',function(){	waterfall = new Waterfall.Loader({container:"#ColumnContainer",load:function (success, end) {$('#loadingPins').show();$('.loader').hide();S.ajax({data:{'method':'flickr.photos.search','api_key':'5d93c2e473e39e9307e86d4a01381266','tags':'rose','page':nextpage,'per_page':20,'format':'json'},url:'http://api.flickr.com/services/rest/',dataType:"jsonp",jsonp:"jsoncallback",success:function (d) {// 如果數據錯誤, 則立即結束if (d.stat !== 'ok') {alert('load data error!');end();return;}// 如果到最后一頁了, 也結束加載nextpage = d.photos.page + 1;if (nextpage > d.photos.pages) {end();return;}// 拼裝每頁數據var items = [];S.each(d.photos.photo, function (item) {/*所用到的字段:**price**height**collection**title**src*/item.height = Math.round(Math.random() * (300 - 180) + 180); // fake height	item.collection = 10;	//測試用item.price = 1800;		//測試用items.push(S.substitute(tpl,item));});success(items);},complete:function () {$('#loadingPins').hide();$('.loader').show();}});},minColCount:2,colWidth:175//align:'left' // right, center (default)});waterfall.on('addComplete', function () {S.log('after add complete!');waterfall.pause();});		});


最終整個腳本文件:

KISSY.use("waterfall,ajax,node,button", function (S, Waterfall, io,  Node, Button) {var $ = Node.all;var tpl = $('#tpl').html(),nextpage = 1,waterfall = new Waterfall.Loader({container:"#ColumnContainer",load:function (success, end) {$('#loadingPins').show();S.ajax({data:{'method':'flickr.photos.search','api_key':'5d93c2e473e39e9307e86d4a01381266','tags':'rose','page':nextpage,'per_page':20,'format':'json'},url:'http://api.flickr.com/services/rest/',dataType:"jsonp",jsonp:"jsoncallback",success:function (d) {// 如果數據錯誤, 則立即結束if (d.stat !== 'ok') {alert('load data error!');end();return;}// 如果到最后一頁了, 也結束加載nextpage = d.photos.page + 1;if (nextpage > d.photos.pages) {end();return;}// 拼裝每頁數據var items = [];S.each(d.photos.photo, function (item) {/*所用到的字段:**price**height**collection**title**src*/item.height = Math.round(Math.random() * (300 - 180) + 180); // fake height	item.collection = 10;	//測試用item.price = 1800;		//測試用items.push(S.substitute(tpl,item));});success(items);},complete:function () {$('#loadingPins').hide();}});},minColCount:2,colWidth:175//align:'left' // right, center (default)});waterfall.on('adjustComplete', function () {S.log('after adjust complete!');});//加載一頁數據完成后觸發的事件waterfall.on('addComplete', function () {S.log('after add complete!');waterfall.pause();});// scrollTo$('#BackToTop').on('click', function (e) {e.halt();e.preventDefault();$(window).stop();$(window).animate({scrollTop:0}, 1, "easeOut");});//加載更多按鈕$("#button_container_more").on('click',function(){	waterfall = new Waterfall.Loader({container:"#ColumnContainer",load:function (success, end) {$('#loadingPins').show();$('.loader').hide();S.ajax({data:{'method':'flickr.photos.search','api_key':'5d93c2e473e39e9307e86d4a01381266','tags':'rose','page':nextpage,'per_page':20,'format':'json'},url:'http://api.flickr.com/services/rest/',dataType:"jsonp",jsonp:"jsoncallback",success:function (d) {// 如果數據錯誤, 則立即結束if (d.stat !== 'ok') {alert('load data error!');end();return;}// 如果到最后一頁了, 也結束加載nextpage = d.photos.page + 1;if (nextpage > d.photos.pages) {end();return;}// 拼裝每頁數據var items = [];S.each(d.photos.photo, function (item) {/*所用到的字段:**price**height**collection**title**src*/item.height = Math.round(Math.random() * (300 - 180) + 180); // fake height	item.collection = 10;	//測試用item.price = 1800;		//測試用items.push(S.substitute(tpl,item));});success(items);},complete:function () {$('#loadingPins').hide();$('.loader').show();}});},minColCount:2,colWidth:175//align:'left' // right, center (default)});waterfall.on('addComplete', function () {S.log('after add complete!');waterfall.pause();});		});//收藏按鈕功能var collect;$('#ColumnContainer').delegate("mouseover", ".collect", function (event) {var w = $(event.currentTarget).children("span");var text = w.text();if(text >= 0){collect = text;}w.replaceWith("<span class='collects'>收藏</span>");//w.css("text-indent","3px");});$('#ColumnContainer').delegate("mouseout", ".collect", function (event) {var w = $(event.currentTarget).children("span");w.replaceWith("<span class='collectionAmount'>"+collect+"</span>");//w.css("text-indent","13px");});});


轉載于:https://www.cnblogs.com/JerryC/p/3832149.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/378069.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378069.shtml
英文地址,請注明出處:http://en.pswp.cn/news/378069.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

web服務器文檔根目錄在哪里,web服務器根目錄在哪

web服務器根目錄在哪 內容精選換一換SSL證書通過在客戶端瀏覽器和Web服務器之間建立一條SSL安全通道(訪問方式為HTTPS)&#xff0c;實現數據信息在客戶端和服務器之間的加密傳輸&#xff0c;可以防止數據信息的泄露。SSL保證了雙方傳遞信息的安全性&#xff0c;而且用戶可以通過…

console java_Java Console writer()方法與示例

console java控制臺類writer()方法 (Console Class writer() method) writer() method is available in java.io package. writer()方法在java.io包中可用。 writer() method is used to get a distinct PrintWriter object linked with this Console. writer()方法用于獲取與此…

二、圖片加載與保存

一、基本概念 1&#xff0c;什么是圖片&#xff1f; 答&#xff1a;圖像是結構化存儲的數據信息 2&#xff0c;圖像的屬性 答&#xff1a;1、通道數目&#xff0c;2、寬與高&#xff0c;3、像素數據&#xff0c;4、圖像類型 二、加載顯示圖像并保存 import cv2 import nump…

LeetCode 206. 反轉鏈表 思考分析

題目 反轉一個單鏈表。 示例: 輸入: 1->2->3->4->5->NULL 輸出: 5->4->3->2->1->NULL 進階: 你可以迭代或遞歸地反轉鏈表。你能否用兩種方法解決這道題&#xff1f; 迭代雙指針 從某公眾號&#xff08;代碼隨想錄&#xff09;搬過來的gif圖&…

hdu 2846 Repository 字典樹的變形

Repository Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)                  Total Submission(s): 1129 Accepted Submission(s): 382 Problem DescriptionWhen you go shopping, you can search in repository…

怎樣看虛擬主機的服務器,虛擬主機怎么查看服務器類型

虛擬主機怎么查看服務器類型 內容精選換一換使用華為云提供的公共鏡像制作私有鏡像時&#xff0c;您需先購買云主機等云資源時鏡像選擇公共鏡像、云服務器類型建議統一選擇“s3 (通用計算型)”&#xff0c;在云主機安裝部署完商品&#xff0c;然后參照以下方式進行私有鏡像制作…

Win32動態庫 Lib文件哪去了

最近使用SQLite&#xff0c;用源文件.c和.h編譯SQLite的動態庫&#xff0c;編譯后發現沒有Lib文件。 原來&#xff1a;SQLite的.c文件沒有引用.h文件&#xff0c;添加引用&#xff0c;編譯&#xff0c;Lib文件有了。轉載于:https://www.cnblogs.com/yunuoyuhan/p/3204457.html

console java_Java Console format()方法與示例

console java控制臺類format()方法 (Console Class format() method) format() method is available in java.io package. format()方法在java.io包中可用。 format() method is used to write the formatted string to this Console with the help of the given string format…

Anaconda自帶Python編譯器Jupyter Notebook顯示代碼行數

ESC&#xff1a;進入命令行模式&#xff1b;按下H即可顯示各種快捷鍵信息 Enter&#xff1a;進入編輯模式 方法一&#xff1a;命令方法 一、點擊代碼段&#xff0c;按ESC&#xff0c;使代碼段顯示藍色&#xff0c;進入命令行模式 二、按下ShiftL&#xff0c;顯示代碼行數 方法…

ajax 服務器響應,ajax-服務器響應

如果需要獲得了來自服務器的響應&#xff0c;則使用XMLHttpRequest 對象的 responseText 或 responseXML 屬性responseText&#xff1a;獲得字符串形式的響應數據&#xff0c;當readyState屬性值變為4時&#xff0c;responseText屬性才可用&#xff0c;表明Ajax請求已經結束例&…

(轉)MOMO的Unity3D研究院之深入理解Unity腳本的執行順序(六十二)

http://www.xuanyusong.com/archives/2378 Unity是不支持多線程的&#xff0c;也就是說我們必須要在主線程中操作它&#xff0c;可是Unity可以同時創建很多腳本&#xff0c;并且可以分別綁定在不同的游戲對象身上&#xff0c;他們各自都在執行自己的生命周期感覺像是多線程&…

SQL/MongoDB 連接并發測試

最近一直在搞mongodb 文件服務器大量文件并發上傳測試&#xff0c;在官方文檔發現mongo是線程安全的&#xff0c;支持單一連接下的并發操作。印象ADO.NET 似乎不支持單一連接并發。于是&#xff0c;測試一下來證實這個疑慮。&#xff08;前兩篇小記一直糾結mongodb吃內存導致并…

【C、C++基礎】什么時候用 “.” 什么時候用“->”(3個實例搞懂)

從堆棧的角度來說&#xff1a; 從堆棧的角度來說&#xff1a; 對象放在堆上&#xff0c;就要用指針&#xff0c;也就是對象指針->函數&#xff1b; 放在棧上,就對象.函數 那么如何判斷對象放在堆上還是棧上&#xff1f; 從我的另一篇筆記【C grammar】C簡化內存模型可知&am…

java clone方法_Java Calendar clone()方法與示例

java clone方法日歷類clone()方法 (Calendar Class clone() method) clone() method is available in java.util package. clone()方法在java.util包中可用。 clone() method is used to return the cloned object of this Calendar object. clone()方法用于返回此Calendar對象…

三、Numpy數組操作

一、對圖片各個像素點的像素值進行操作 image.shape[0]&#xff1a;image圖像的height image.shape[1]&#xff1a;image圖像的width image.shape[2]&#xff1a;image圖像的channels import cv2 import numpy as npdef access_pixels(image):print(image.shape)height imag…

picacg服務器維護,picacg的服務器地址是什么

彈性云服務器 ECS彈性云服務器(Elastic Cloud Server)是一種可隨時自助獲取、可彈性伸縮的云服務器&#xff0c;幫助用戶打造可靠、安全、靈活、高效的應用環境&#xff0c;確保服務持久穩定運行&#xff0c;提升運維效率三年低至5折&#xff0c;多種配置可選了解詳情用戶數據注…

Redis-Sampler:深入了解你的Redis存儲

redis-sampler 是Redis作者antirez 同學開發的一個ruby 小工具&#xff0c;用于對Redis存儲概況進行抽樣檢測并給出分析結果。 項目地址&#xff1a;https://github.com/antirez/redis-sampler 使用方式&#xff1a; 下載源碼&#xff0c;執行下面命令&#xff1a; ./redis-sam…

二叉樹筆記(深度遍歷與廣度遍歷+13道leetcode題目(深度3道、廣度10道))

本文章為結合leetcode題目以及公眾號“代碼隨想錄”的文章所做的筆記&#xff01; 感覺代碼隨想錄的題目整理真的很好&#xff0c;比自己盲目刷題好很多。 目錄1、二叉樹小記1、滿二叉樹與完全二叉樹2、二叉搜索樹3、平衡二叉搜索樹AVL4、二叉樹存儲方式5、二叉樹遍歷方式6、二…

ZZ的計算器

Problem Description ZZ自從上大學以來&#xff0c;腦容量就是以SB計算的&#xff0c;這個吃貨竟然連算術運算也不會了&#xff0c;可是當今的計算機可是非常強大的&#xff0c;作為ACMer&#xff0c; 幾個簡單的算術又算得了什么呢&#xff1f;可是該怎么做呢&#xff1f;ZZ只…

kotlin 覆蓋屬性_Kotlin程序| 方法覆蓋的示例

kotlin 覆蓋屬性方法重載 (Method Overriding) Method overriding allows derived class has the same function name and signature as the base class 方法重寫允許派生類具有與基類相同的函數名稱和簽名 By method overriding we can provide different implementation into…