$(function() { // function PJAX_body_shift_on() { // if( !$("body.blog")[0] ){ // body_shift_y = scroll_val; // } // $("body").css({ // "top": -body_shift_y // }); // $('html,body').scrollTop(0); // $("body").removeClass().addClass("entry blog"); // $("#container").css({"margin-top": body_shift_y}); // } // function PJAX_body_shift_off(body_shift_y) { // $("body").removeClass(); // $("body").css({ // "top": 0 // }); // $('html,body').scrollTop(body_shift_y); // $("#container").css({"margin-top": 0}); // } category = Array(); category['profile'] = Array(); category['profile']['title'] = "PROFILE"; category['profile']['description'] = ""; category['profile']['type'] = "page"; category['profile']['pagenation'] = "0"; category['profile']['format'] = "Profile_Format_001"; category['projects/'] = Array(); category['projects/']['title'] = "PROJECTS"; category['projects/']['description'] = "宮城島崇人建築設計事務所のプロジェクト一覧です"; category['projects/']['type'] = "index:16"; category['projects/']['pagenation'] = "1"; category['projects/']['format'] = "Part_Content_005"; category['news/'] = Array(); category['news/']['title'] = "NEWS"; category['news/']['description'] = "宮城島崇人建築設計事務所のニュース一覧です"; category['news/']['type'] = "index:16"; category['news/']['pagenation'] = "2"; category['news/']['format'] = "Part_Content_004"; category['contact'] = Array(); category['contact']['title'] = "CONTACT"; category['contact']['description'] = "ご連絡先"; category['contact']['type'] = "page"; category['contact']['pagenation'] = "3"; category['contact']['format'] = "Part_Content_003"; category['projects/architecture/'] = Array(); category['projects/architecture/']['title'] = "PROJECTS/ARCHITECTURE/"; category['projects/architecture/']['description'] = "宮城島崇人建築設計事務所のプロジェクト:ARCHITECTURE 一覧"; category['projects/architecture/']['type'] = "sort"; category['projects/architecture/']['pagenation'] = "4"; category['projects/architecture/']['format'] = "Content_Format_001"; category['projects/furniture/'] = Array(); category['projects/furniture/']['title'] = "PROJECTS/FURNITURE/"; category['projects/furniture/']['description'] = "宮城島崇人建築設計事務所のプロジェクト:FURNITURE 一覧"; category['projects/furniture/']['type'] = "sort"; category['projects/furniture/']['pagenation'] = "5"; category['projects/furniture/']['format'] = "Content_Format_001"; category['projects/landscape/'] = Array(); category['projects/landscape/']['title'] = "PROJECTS/LANDSCAPE/"; category['projects/landscape/']['description'] = "宮城島崇人建築設計事務所のプロジェクト:LANDSCAPE 一覧"; category['projects/landscape/']['type'] = "sort"; category['projects/landscape/']['pagenation'] = "6"; category['projects/landscape/']['format'] = "Content_Format_001"; category['projects/research/'] = Array(); category['projects/research/']['title'] = "PROJECTS/RESEARCH/"; category['projects/research/']['description'] = "宮城島崇人建築設計事務所のプロジェクト:RESEARCH 一覧"; category['projects/research/']['type'] = "sort"; category['projects/research/']['pagenation'] = "7"; category['projects/research/']['format'] = "Content_Format_001"; category['news/publish/'] = Array(); category['news/publish/']['title'] = "NEWS/PUBLISH/"; category['news/publish/']['description'] = "宮城島崇人建築設計事務所のニュース:PUBLISH 一覧"; category['news/publish/']['type'] = "sort"; category['news/publish/']['pagenation'] = "8"; category['news/publish/']['format'] = "Content_Format_002"; category['news/info/'] = Array(); category['news/info/']['title'] = "NEWS/INFO/"; category['news/info/']['description'] = "宮城島崇人建築設計事務所のニュース:INFO 一覧"; category['news/info/']['type'] = "sort"; category['news/info/']['pagenation'] = "9"; category['news/info/']['format'] = "Content_Format_002"; category['news/recruitment/'] = Array(); category['news/recruitment/']['title'] = "NEWS/RECRUITMENT/"; category['news/recruitment/']['description'] = "宮城島崇人建築設計事務所のニュース:RECRUITMENT 一覧"; category['news/recruitment/']['type'] = "sort"; category['news/recruitment/']['pagenation'] = "10"; category['news/recruitment/']['format'] = "Content_Format_002"; category['news/prize/'] = Array(); category['news/prize/']['title'] = "NEWS/PRIZE/"; category['news/prize/']['description'] = "宮城島崇人建築設計事務所のニュース:PRIZE 一覧"; category['news/prize/']['type'] = "sort"; category['news/prize/']['pagenation'] = "11"; category['news/prize/']['format'] = "Content_Format_002"; category['root'] = Array(); category['root']['title'] = "TOP"; category['root']['description'] = ""; category['root']['type'] = "page"; category['root']['pagenation'] = "0"; category['root']['format'] = "Part_Content_001"; function htmlEncode(value){ return $('
').text(value).html(); } function htmlDecode(value){ return $('
').html(value).text(); } function create_fullcalendar(){ // Google Calender feed $('#calendar_tomii').fullCalendar({ googleCalendarApiKey: 'AIzaSyARQZH1G-VqGLNJMz21rHu1hMc9OotNgAk', eventSources:[ { googleCalendarId: 'info@lifesnap.jp', className:"event_set_1" }, { googleCalendarId:"japanese__ja@holiday.calendar.google.com", className:"event_set_2" }, { googleCalendarId:"lifesnap.jp_06ijuvifgtbq3p374gtdbjdnak@group.calendar.google.com", className:"event_set_3" } ], timeFormat: "H:mm", loading: function(bool) { if (bool) { $(this).parent().find('.cal_loading').show(); }else{ $(this).parent().find(".cal_loading").fadeOut(200); $(this).find(".fc-event-time").parent().addClass("single_day"); $(this).find(".fc-event-time").parent().parent().addClass("single_day_wrapper"); } } }); $(document).on("click", "a.fc-day-grid-event", function(){ return false; }); } $("img.preload:not('.loaded')").each(function(){ $(this).imagesLoaded(function(){ $(this).addClass("loaded"); }); }); var href = ""; var past_href = location.href; var memo_scroll = 0; $("body").attr("data-directory","root"); function PJAX_hrefchange( href, option ) { if( typeof ajax_request != "undefined" ){ ajax_request.abort(); } if( href && past_href != href && href.indexOf( "#" ) == -1 ){ past_href = href; var id = href.replace( "https://takahitomiyagishima.com/", "" ); var id = id.replace( "?mode=preview", "" ); ajax_request = $.ajax({ url: "https://takahitomiyagishima.com/js_pjax_json.php", data: "id=" + id + "&type=json" + "", dataType: "json", success: function(data, dataType){ if( option != "onpop" && option != "forward" ){ PJAX_pushState( href, data.pagetitle ); } document.title = data.pagetitle; refresh_lang_permalink( data ); var ga_title = data.pagetitle; ga('send', 'pageview', {'page': '/' + id, 'title': ga_title}) var page_type = data.page_type; var body_class = data.body_class; var index_parent_dir = data.index_parent_dir; if( data.index_num > 1 ){ option = "forward"; } if( $("div#entry > *")[0] ){ $("div#entry").empty(); $("div#entry").css("top", 0); } if( page_type == "entry" ){ body_class += " " + "modal"; scroll_action_flag = false; memo_scroll = $(window).scrollTop(); $("div#entry").css("top", memo_scroll + "px"); $("div#entry").removeClass().addClass(id.replace(/\//g, " ")); $("body").attr("class",body_class); PJAX_ajax_load( id,data,option ); }else if( $("body.modal")[0] ){ $('html,body').animate({ scrollTop: memo_scroll }, 1000, "easeOutQuint"); $("div#entry").removeClass("active"); $("body").attr("class",body_class); scroll_action_flag = true; }else{ PJAX_ajax_load( id,data,option ); } }, error: function(XMLHttpRequest, textStatus, errorThrown){ } }); } } function PJAX_ajax_load( id,data,option ) { if( typeof ajax_request != "undefined" ){ ajax_request.abort(); } ajax_request = $.ajax({ url: "https://takahitomiyagishima.com/ajax_load.php", data: "id=" + id + "&ajax=true" + "", dataType: "html", success: function(elm, dataType){ PJAX_ajax_leave( id,data,option,elm ); }, error: function(XMLHttpRequest, textStatus, errorThrown){ } }); } function PJAX_ajax_leave( id,data,option,elm ) { var pagetitle = data.pagetitle; var meta_og_image = data.meta_og_image; var permalink = data.permalink; var page_format = data.page_format; var body_class = data.body_class; var path = data.path; var directory = data.directory; var directory_1 = data.directory_1; var directory_2 = data.directory_2; var directory_3 = data.directory_3; var directory_4 = data.directory_4; var file = data.file; var page_type = data.page_type; var index_num = data.index_num; var index_parent_dir = data.index_parent_dir; var base = $("#container > div#base"); // rootから離脱 if( $("body.root")[0] ){ PJAX_ajax_leave_stand(); setTimeout( function(){ base.hide(); $("body #container > div#base > article").remove(); $("div#slide_wrapper").empty(); setTimeout( function(){ $("body").removeClass(); PJAX_ajax_move( id,data,elm ); } , 100); } , 500); } // pageから離脱 if( $("body.page")[0] ){ PJAX_ajax_leave_stand(); setTimeout( function(){ base.hide(); $("body #container > div#base > article").remove(); setTimeout( function(){ $("body").removeClass(); PJAX_ajax_move( id,data,elm ); } , 100); } , 500); } if( page_type == "entry" ){ $("div#entry").empty().append(elm).append('').append('').addClass("active"); if( $("body.projects div.body > div.Image_thm_List > figure")[0] ){ var target_thm = $("body.projects div.body > div.Image_thm_List > figure"); PJAX_random_add(target_thm, 100); } }else{ // indexから離脱 if( $("body.index")[0] ){ if( path == $("body").attr("data-directory") ){ // $("body.projects.entry #container > div#base > article > div.content > div.body > header").remove(); // $("body.projects.entry #container > div#base > article > div.content > div.body > div.description").remove(); // $("body.projects.entry #container > div#base > article > div.content > div.body > div.Image_List").remove(); // // var target = $("div.index > ul"); // var val = target.offset().top; // $('html,body').stop().animate({ // scrollTop: val // }, 1000, "easeOutQuint"); }else if( directory == $("body").attr("data-directory") ){ if( option == "forward" ){ // 離脱しないでサムネイル追加 $("div.index > ul > li.loadmore").remove(); var append_elm = $('
').html(elm).find("div.index > ul > li"); var target_wrapper = $("div.index > ul"); target_wrapper.append(append_elm); window_resize(); setTimeout( function(){ var target_thm = $("div.index > ul > li:not(.active)"); PJAX_random_add(target_thm, 200); $("img.preload:not('.loaded')").each(function(){ $(this).imagesLoaded(function(){ $(this).addClass("loaded"); }); }); } , 500); } }else{ PJAX_ajax_leave_stand(); setTimeout( function(){ base.hide(); $("body #container > div#base > article").remove(); setTimeout( function(){ $("body").removeClass(); PJAX_ajax_move( id,data,elm ); } , 100); } , 500); } } } } function PJAX_ajax_leave_stand() { $('html,body').stop().animate({ scrollTop: 0 }, 1000, "easeOutQuint"); $("body").addClass("leave"); } function PJAX_random_add( targets, delay ){ var target_num = targets.length; var random_i = Math.floor(Math.random()*target_num); $(targets[random_i]).addClass("active"); targets.splice(random_i,1); if (target_num > 0) { setTimeout(function(){ PJAX_random_add( targets, delay ); },delay); } else { return false; } } if( $("div.index > ul > li:not(.active)")[0] ){ var target_thm = $("div.index > ul > li:not(.active)"); PJAX_random_add(target_thm, 200); } if( $("body.projects div.body > div.Image_thm_List > figure:not(.active)")[0] ){ var target_thm = $("body.projects div.body > div.Image_thm_List > figure"); PJAX_random_add(target_thm, 100); } function PJAX_ajax_move( id,data,elm ) { var pagetitle = data.pagetitle; var meta_og_image = data.meta_og_image; var permalink = data.permalink; var page_format = data.page_format; var body_class = data.body_class; var path = data.path; var directory = data.directory; var directory_1 = data.directory_1; var directory_2 = data.directory_2; var directory_3 = data.directory_3; var directory_4 = data.directory_4; var file = data.file; var page_type = data.page_type; var index_num = data.index_num; var index_parent_dir = data.index_parent_dir; $("body").attr("class",body_class); var base = $("#container > div#base"); if( page_type == "root" ){ $("body").attr("data-directory",directory); base.children("article").remove(); $.ajax({ url: "https://takahitomiyagishima.com/ajax_slide.php", data: "ajax=true" + "", success: function(slide_elm, dataType){ base.show(); $("div#slide_wrapper").append(slide_elm); base.append(elm); swipe_init(); base.children("article").hide(); setTimeout( function(){ base.children("article").fadeIn(3000); } , 500); }, error: function(XMLHttpRequest, textStatus, errorThrown){ } }); }else{ $("body").off(); } if( page_type == "page" ){ $("body").attr("data-directory",directory); base.children("article").remove(); base.append(elm).show(); base.children("article").addClass("hide"); setTimeout( function(){ base.children("article").removeClass("hide"); } , 500); if( $("#google_maps")[0] ){ initialize_gmap("https://takahitomiyagishima.com/","ajax"); } } if( page_type == "index" ){ $("body").attr("data-directory",directory); base.children("article").remove(); base.append(elm); window_resize(); base.children("article").addClass("hide"); base.show(); setTimeout( function(){ var target_thm = $("div.index > ul > li:not(.active)"); PJAX_random_add(target_thm, 200); base.children("article").removeClass("hide"); $("img.preload:not('.loaded')").each(function(){ $(this).imagesLoaded(function(){ $(this).addClass("loaded"); }); }); } , 500); scroll_action_flag = true; } } function PJAX_pushState( href, title ) { if ( window.history.pushState ) { window.history.pushState( title, null, href ); } else { } } window.onpopstate = function(event){ if (event.state) { } else { } var href = location.href; if ( window.history.pushState ) { PJAX_hrefchange( href, "onpop" ); } else { var href = "https://takahitomiyagishima.com/#!/" + href.replace( /^.\//, '' ); window.location = href; } } $(document).on("click", "a.pjax", function(){ var href = $(this).attr("href"); if ( window.history.pushState ) { PJAX_hrefchange( href,"" ); } else { var href = href.replace( "https://takahitomiyagishima.com/", "" ); var href = "https://takahitomiyagishima.com/#!/" + href.replace( /^.\//, '' ); var past_href = location.href; window.location = href; } return false; }); function refresh_lang_permalink( data ) { var href = data.permalink; var permalink_sub = href.replace("https://takahitomiyagishima.com/", ""); $("#wrapper > div.lang > ul > li.jp > a").attr("href","https://takahitomiyagishima.com/"+permalink_sub); $("#wrapper > div.lang > ul > li.en > a").attr("href","https://takahitomiyagishima.com/en/"+permalink_sub); } $(window).hashchange( function(){ var hash = location.hash; if( hash.indexOf( "#!/" ) != -1 ){ var href = hash.replace( /^#!\//, '' ); if( href == "" ){ var href = "https://takahitomiyagishima.com/"; } PJAX_hrefchange( href,"" ); } }) $(window).bind('load', function() { var hash = location.hash; if( hash.indexOf( "#!/" ) != -1 ){ var href = hash.replace( /^#!\//, '' ); if ( window.history.pushState ) { window.location = href; }else{ PJAX_hrefchange( href,"" ); } } }); var window_height = 0; if( $("html.touch_device")[0] ){ if( window.innerHeight > window.innerWidth ){ var window_height = $(window).height(); }else{ var window_height = $(window).height(); } }else{ var window_height = window.innerHeight ? window.innerHeight: $(window).height(); } var window_width = $(window).width(); var scroll_val = $(window).scrollTop(); var scroll_action_flag = true; function window_action() { scroll_val = $(window).scrollTop(); if( scroll_action_flag == true && $("div.index > ul > li.loadmore")[0] ){ var target = $("div.index > ul > li.loadmore"); var load_more_top = target.offset().top; if( scroll_val > load_more_top - window_height - 500 ){ scroll_action_flag = false; var href = target.find("a").attr("href"); $("div.index > ul > li.loadmore").remove(); PJAX_hrefchange( href, "forward" ); setTimeout( function(){ scroll_action_flag = true; } , 1000); } } } $(window).scroll(function(){ window_action(); }); // if('ontouchstart' in window) { // $(window).bind('touchmove', function () { // window_action(); // }); // } var view_position = 0; function window_action_entry() { // if($("body.news.index.entry.modal > #wrapper > #entry").is(':animated')){ // $("body.news.index.entry.modal > #wrapper > #entry").stop(); // } scroll_entry_val = $("body.news.index.entry.modal > #wrapper > #entry").scrollTop(); view_position = scroll_entry_val + $(window).height()/2; // view_position = scroll_entry_val; if( $("article.main.entry.news > a.entry_loader")[0] ){ if( $("html:not(.moving) .scroll_trigger:not(.action)")[0] ){ $(".scroll_trigger:not(.action)").each(function(i){ var target = $(this); var elm_position = target.position().top; var elm_bottom_position = elm_position + target.outerHeight(true); if( view_position >= elm_position && view_position <= elm_bottom_position ){ console.log("─ ─ ─ ─ ─ ─ START ─ ─ ─ ─ ─ ─"); target.addClass('action'); var main_elm = $("article.main.entry.news > div.content[data-permalink='"+location.href+"']"); main_elm.addClass("main"); var id = target.attr("data-permalink").replace( "https://takahitomiyagishima.com/", "" ); var ga_title = target.attr("data-pagetitle"); console.log("tracker: "+id+" _ "+ga_title); ga('send', 'pageview', {'page': '/' + id, 'title': ga_title}) console.log("elm_position: "+elm_position); console.log("view_position: "+view_position); console.log("elm_bottom_position: "+elm_bottom_position); if( ! $("html.moving")[0] ){ if( target.prev("a.entry_loader.next")[0] ){ var prev_loader_elm = target.prev("a.entry_loader"); var prev_url = prev_loader_elm.attr("href"); entry_next_prev_load(prev_loader_elm,"prev"); } if( target.next("a.entry_loader.prev")[0] ){ var next_loader_elm = target.next("a.entry_loader"); var next_url = next_loader_elm.attr("href"); entry_next_prev_load(next_loader_elm,"next"); } } } }); } } } window.window_action_entry_bind = function () { if( $("body.news.index.entry.modal > #wrapper > #entry")[0] ){ $("body.news.index.entry.modal > #wrapper > #entry").on("scroll.entry",function(){ window_action_entry(); }); } } function entry_next_prev_load(anchor_elm,key){ var url = anchor_elm.attr("href"); $("html").addClass("moving"); ajax_request_reflesh = $.ajax({ url: url + "", dataType: "html", type: "POST", }).done(function(ajax_data) { console.log("ajax-done: "+url); var get_elm = $('article.main.entry.news > *', $('
').prepend(ajax_data)); // if( $("#entry > article")[0] ){ // var before_height = $("#entry > article").outerHeight(true); // }else{ // var before_height = $("#container > div#base").outerHeight(true); // } // var mem_scroll = $("body.news.index.entry.modal > #wrapper > #entry").scrollTop(); anchor_elm.after(get_elm); anchor_elm.remove(); var added_elm = []; added_elm[url] = $("article.main.entry.news > div.content[data-permalink='"+url+"']").addClass("loading"); if( key == "prev" ){ added_elm[url].next("a.entry_loader.prev").remove(); added_elm[url].imagesLoaded().done(function(){ var added_elm_height = added_elm[url].children("div.body").outerHeight(true); $("body.news.index.entry.modal > #wrapper > #entry").addClass("overflow_hidden"); var mem_scroll = $("body.news.index.entry.modal > #wrapper > #entry").scrollTop(); added_elm[url].removeClass("loading"); $("body.news.index.entry.modal > #wrapper > #entry").removeClass("overflow_hidden"); $("body.news.index.entry.modal > #wrapper > #entry").stop().scrollTop( mem_scroll + added_elm_height ); if( $("html.touch_device")[0] ){ if( ! $("article.main.entry.news.first")[0] ){ $("body.news.index.entry.modal > #wrapper > #entry").stop().animate({ scrollTop: mem_scroll + added_elm_height - 200 }, 500, "easeOutQuint",function(){ }); }else{ mem_scroll = $("body.news.index.entry.modal > #wrapper > #entry").scrollTop(); $("body.news.index.entry.modal > #wrapper > #entry").stop().scrollTop( mem_scroll+1 ); } } scroll_entry_val = $("body.news.index.entry.modal > #wrapper > #entry").scrollTop(); // $("body.news.index.entry.modal > #wrapper > #entry").scrollTop( mem_scroll + (after_height-before_height) ); // console.log("before_height: "+before_height); // console.log("after_height: "+after_height); // console.log("added_elm_height: "+added_elm_height); // console.log("scrollTop_before: "+mem_scroll); // console.log("scrollTop_after: "+$("body.news.index.entry.modal > #wrapper > #entry").scrollTop()); setTimeout( function(){ if( ! $("article.main.entry.news.first")[0] ){ $("html").removeClass("moving"); }else{ $("article.main.entry.news.first").removeClass("first"); $("html").removeClass("moving"); } console.log("─ ─ ─ ─ ─ ─ END PREV ─ ─ ─ ─ ─ ─"); } , 100); }); img_load(); scroll_entry_val = $("body.news.index.entry.modal > #wrapper > #entry").scrollTop(); } if( key == "next" ){ added_elm[url].removeClass("loading"); added_elm[url].prev("a.entry_loader.next").remove(); img_load(); setTimeout( function(){ $("html").removeClass("moving"); console.log("─ ─ ─ ─ ─ ─ END NEXT ─ ─ ─ ─ ─ ─"); } , 100); } }).fail(function(data_json) { console.log("fail"); }); } window.window_resize = function(){ if( $("html.touch_device")[0] ){ if( window.innerHeight > window.innerWidth ){ window_height = $(window).height(); }else{ window_height = $(window).height(); } }else{ window_height = window.innerHeight ? window.innerHeight: $(window).height(); } window_width = $(window).width(); window_action(); window_action_entry(); } $(window).bind("resize", window_resize); window_resize(); var save = 0; scroll_swipe_flg = true; $(document).on("mousewheel", "body.root", function(e) { if( scroll_swipe_flg == true ){ scroll_swipe_flg = false; if(e.deltaY >= 1) { } else { $("body").off(); PJAX_hrefchange( "https://takahitomiyagishima.com/projects/", "" ); setTimeout( function(){ scroll_swipe_flg = true; } , 1000); } } }); function isTouch(){ return (document.ontouchstart !== undefined); } function swipe_init(){ $("body.root").on({ 'touchstart': function(e) { this.touchX = event.changedTouches[0].pageX; this.touchY = event.changedTouches[0].pageY; }, 'touchmove': function(e) { var moveX = this.touchX - event.changedTouches[0].pageX; var moveY = this.touchY - event.changedTouches[0].pageY; if( this.touchX < moveX ){ // move left }else{ // move right } if( this.touchY < moveY ){ // move up }else{ // move down if( scroll_swipe_flg == true ){ scroll_swipe_flg = false; $("body").off(); PJAX_hrefchange( "https://takahitomiyagishima.com/projects/", "" ); setTimeout( function(){ scroll_swipe_flg = true; } , 1000); } } }, 'touchend': function(e) { } }); } if( isTouch() ){ swipe_init(); } });