$(function(){ // 読み込む場所 var tgtObj = $('#albload'); // コンテンツ用変数 var counterFlg = true; var contUrl = getNextURL(); var F_FILE = "album.php"; //includeファイル var F_URL = location.search; /* スクロールイベント(stop) ----------------------------------------------------*/ var scrollStopEvent = new $.Event("scrollstop"); var delay = 200; var timer; function scrollStopEventTrigger(){ if (timer) { clearTimeout(timer); } timer = setTimeout(function(){$(window).trigger(scrollStopEvent)}, delay); } $(window).on("scroll", scrollStopEventTrigger); $("body").on("touchmove", scrollStopEventTrigger); $(window).on("scrollstop" , chkScl); setDuration(); /* ----------------------------------------------------*/ function getNextURL (argument) { // load用URL var path = $("#next a").attr('href'); if(path === undefined) { counterFlg = false; // ページリンクを包括する要素(隠す要素) } var pager = $("#pager"); pager.remove(); return path; } /* ----------------------------------------------------*/ function chkScl (e){ var bottomPos = 800; var scrollHeight = $(document).height(); var scrollPosition = $(window).height() + $(window).scrollTop(); if (scrollPosition > scrollHeight - bottomPos){ //ページ下部に到達したときの処理 if(counterFlg){ $(window).off("scrollstop"); loading(contUrl); }else{ $(window).off("scrollstop"); } } } function loading(path){ var url = parseURL(path); var pathname = url.pathname; var so = url.searchObject; so.append = 'true'; // クエリのみpushStateしていく window.history.replaceState(url,'',url.search); // 読み込むファイル用にquery追加してajaxにリクエスト // url.search += '&append=true'; // loadpath = pathname + url.search; // console.log(url); $.ajax({ beforeSend: function(){ tgtObj.after('

Now Loading...

'); /*$(".loading").css({ textAlign:"center", padding:"50px" })*/ }, url : F_FILE, type : "post", data : so }) .done(function(data){ $(".loading").remove(); tgtObj.append(data); contUrl = getNextURL(); $(window).on("scrollstop" , chkScl); setDuration(); // console.log(contUrl); // alert('done'); }) .fail(function( jqXHR, textStatus, errorThrown ){ // alert('fail!'); }) .always(function( data, textStatus, errorThrown ){ // alert('always!'); }); } function setDuration() { $('.listCatch p').each(function() { var cw = $(this).parent('.listCatch').outerWidth(); var w = $(this).outerWidth(); var ratio = (w/cw)*4; $(this).css({ 'animation-duration' : ratio+'s' }); }); } function parseURL(url) { var parser = document.createElement('a'), searchObject = {}, queries, split, i; // Let the browser do the work parser.href = url; // Convert query string to object queries = parser.search.replace(/^\?/, '').split('&'); for( i = 0; i < queries.length; i++ ) { split = queries[i].split('='); searchObject[split[0]] = split[1]; } return { protocol: parser.protocol, host: parser.host, hostname: parser.hostname, port: parser.port, pathname: parser.pathname, search: parser.search, searchObject: searchObject, hash: parser.hash }; } });