$(function(){ 'use strict'; var xml_contents; //contents.xml格納用 var xml_link; //link.xml格納用 //xmlから読み込む値 var imgPrefix; //画像ディレクトリまでのパス var opSpread; //右開き・左開き var totalPages; //総ページ数(1から数えた数) var bookW; //1ページの幅 var bookH; //1ページの高さ var sliceW; //スライス画像横幅 var sliceH; //スライス画像縦幅 var pageStyle; //ページスタイル(3:複数ページ用(最初の見開きが1ページ)、4:複数ページ用(最初の見開きが2ページ)) var nombre; //ページ数を数える場合の開始数 var minusPage; //マイナスページを表示するか(0:表示しない、1:表示する) var hidePages; //非表示ページ(配列に変換) //設定用変数 var imgSize=4; //使用画像(1,2,4) var hideZero=false; //pageStyle=4 のとき、0ページ目の表示(true:表示しない、false:表示する) var dblClickTime=300; //ダブルクリック判定間隔(ms) var zoomRatio=2; //ズーム1回分の拡大率 var maxZoomRatio=4; //初期表示に対する最大倍率 var borderW=5; //ページ境界の線の幅 var fixHeader=true; //ヘッダー固定表示 var headerH=44; //ヘッダー高さ var sendGA; // GA送信用関数 //汎用変数 var showPageNum; //1度に表示するページ数(1/2) var initZoom; //初期ズーム値(最小値) var maxZoom; //最大ズーム値 var curZoom; //現在のズーム値 var curPage; //現在のページ var prevPage; //前のページのページ番号 var nextPage; //次のページのページ番号 var sliceNumW; //スライス画像の枚数(横) var sliceNumH; //スライス画像の枚数(縦) var windowW; //ウインドウ横幅 var windowH; //ウインドウ高さ var isLeftEnd; //左端ページ var isRightEnd; //右端ページ var linkRgba1; //リンクエリア内の色 var linkRgba2; //リンクエリア枠線の色 var startPage=0; //表示開始ページ var sliderMove=false; //スライダー動作中 var ua = navigator.userAgent; var isIOS = (ua.indexOf('iPhone')!==-1 || ua.indexOf('iPad')!==-1 || ua.indexOf('iPod')!==-1); var isAndroid = (ua.indexOf('Android')!==-1); var isTablet = (ua.indexOf('iPad')!==-1 || isAndroid && ua.indexOf('Mobile')===-1); var isPC = (!isIOS && !isAndroid); var isLowSpec = (ua.match(/Android [1-3]/) || isIOS && ua.match(/OS [2-4]/)); var dataPath = window.dataPath || ''; var startEvent; var moveEvent; var endEvent; if (isAndroid || isIOS){ startEvent = 'touchstart'; moveEvent = 'touchmove'; endEvent = 'touchend'; $('.PC').remove(); } else { startEvent = 'mousedown'; moveEvent = 'mousemove'; endEvent = 'mouseup'; $('.SP').remove(); } /*------------------------------------------------------------------------- xml読み込み -------------------------------------------------------------------------*/ $('#Loading').show(); $.ajax({ type : 'GET', url : dataPath + 'index/contents.xml', dataType : 'xml', success : function(data){ xml_contents = data; $.ajax({ type : 'GET', url : dataPath + 'index/link.xml', dataType : 'xml', success : function(data){ xml_link = data; init(); }, error : function() { init(); } }); }, error : function(e,t) { alert(t); } }); function init(){ //ロースペックモード if (isLowSpec){ imgSize = 2; maxZoomRatio = 2; } //タブレット・PC時 if (isTablet || isPC){ $('body').addClass('tablet'); } //PC時 if (isPC){ $('body').addClass('pc'); } //定数設定 imgPrefix = dataPath + $('imgPrefix', xml_contents).text(); opSpread = $('opSpread', xml_contents).text(); totalPages = parseInt($('totalPages', xml_contents).text()); bookW = parseInt($('bookW', xml_contents).text()); bookH = parseInt($('bookH', xml_contents).text()); sliceW = parseInt($('sliceW', xml_contents).text()); sliceH = parseInt($('sliceH', xml_contents).text()); pageStyle = parseInt($('pageStyle', xml_contents).text()); nombre = parseInt($('pageAssign', xml_contents).attr('nombre')); minusPage = parseInt($('pageAssign', xml_contents).attr('minusPage')); hidePages = $('hidePage', xml_contents).text().split(','); for (var i=0; i$(window).height() && pageStyle!==5){ if (!isPC && showPageNum===2){ return; } showPageNum = 2; } else { if (!isPC && showPageNum===1){ return; } showPageNum = 1; } $('#Wrapper').css('height', '1500px'); setTimeout(function(){ scrollTo(0,1); setTimeout(function(){ //ページ高さ・幅設定 windowH = window.innerHeight; windowW = window.innerWidth; //ページにフィットするよう調整 initZoom = Math.min((windowH-(fixHeader?headerH:0))/(bookH*imgSize), windowW/(bookW*imgSize*showPageNum)); maxZoom = initZoom*maxZoomRatio; $('#Wrapper').css('width', windowW+'px').css('height', windowH+'px'); $('#SliderArea').css('width', (windowW+borderW)*3+'px').css('left', -1*(windowW+borderW)+'px'); $('#SliderArea li').css('width', windowW+'px'); $('#SliderArea .pageAreaInner').css({ width: bookW*imgSize*showPageNum+'px', height: bookH*imgSize+'px' }); $('#IndexList').css('height', '0'); $('#Menu').css('top', 'auto').css('bottom', '0').removeClass('open'); $('#MenuBtn').removeClass('open'); if($('#JumpAreaBtn').hasClass('open')){ $('#JumpArea').css('height', (windowH-headerH)+'px'); } $('#JumpAreaInner').css('height', (windowH-headerH)+'px'); $('#JumpTitle').css('margin-top', (windowH-200)/2+'px'); $('#Loading').css('height', windowH+'px'); $('#LoadingInner').css('margin-top', (windowH-47)/2+'px'); $('#HelpArea').css({ height: (windowH-headerH)+'px', top: -1*windowH+'px' }); $('#HelpBtn').removeClass('open'); zoomReset(); //ページ読み込み jumpPage(curPage); }, 500); }, 500); } //ズーム初期化 function zoomReset(){ if (isPC){ $('#SliderArea .pageArea').css({ width: bookW*imgSize*showPageNum*initZoom+'px', height: bookH*imgSize*initZoom+'px' }); $('#SliderArea .pageAreaInner').css('transform', 'scale('+initZoom+')'); } else { $('#SliderArea .pageAreaInner').css('zoom', initZoom); } $('#SliderArea .pageAreaInner .linkArea').css('border-width', Math.ceil(1/initZoom)+'px'); curZoom = initZoom; var pageW = bookW*imgSize*showPageNum*initZoom; var pageH = bookH*imgSize*initZoom; $('.pageArea') .css('left', (windowW-pageW)/2+'px') .css('top', (windowH-(fixHeader?headerH:0)-pageH)/2+'px'); } /*------------------------------------------------------------------------- ページジャンプ -------------------------------------------------------------------------*/ function jumpPage(index, isBack){ index = parseInt(index, 10); if (isNaN(index)){ return; } var changeNum = showPageNum; if (isBack){ changeNum*=-1; } curPage = index; isLeftEnd = false; isRightEnd = false; if (showPageNum===2 && (pageStyle===3 && curPage%2===0 || pageStyle===4 && curPage%2===1)){ curPage--; } $('#SliderArea .pageArea').eq(1).find('.thumbnail').html(''); $('#SliderArea .pageArea').eq(1).find('.mainImg').html(''); setTimeout(function(){ zoomReset(); for(;;){ var result = loadPage(1, curPage); if (result==='success'){ break; } else if (result==='end'){ changeNum = -1*showPageNum; } curPage += changeNum; } loadNextPage(); loadPrevPage(); pageChange(); }, 100); } //ページ移動時処理 function pageChange(){ //ページ移動ボタンの表示・非表示 if (isLeftEnd){ $('#PageBtnLeft').hide(); } else { $('#PageBtnLeft').show(); } if (isRightEnd){ $('#PageBtnRight').hide(); } else { $('#PageBtnRight').show(); } makePageNum(curPage); // ページ遷移時のGA送信 if(typeof(sendGA) === 'function'){ var pagetext = $('#PageNum div').text().replace(/ /g,''); if(pagetext === ''){ pagetext = '(ページ表記無し)'; }else{ pagetext = 'P.' + pagetext; } sendGA(Math.max(curPage+nombre, startPage+nombre), pagetext); } var range = (windowW-64)/((showPageNum===1? totalPages-startPage:Math.ceil((totalPages+((pageStyle===3)?1:0))/2))*2-2); $('#PageSlider').css(opSpread, range*2*(showPageNum===1? curPage-startPage:Math.floor((curPage-startPage+1)/2))+'px'); $('#PageSliderBar').css('width', range*2*(showPageNum===1? curPage-startPage:Math.floor((curPage-startPage+1)/2))+'px'); } //ページ数表示 function makePageNum(page){ var jq_pageNum = $('#PageNum div'); var left = (page>=startPage)? Math.max(page+nombre, startPage+nombre):''; var right = (showPageNum===2 && page1){ return; } sliderMove = true; var slideMax = windowW-64; var jq_slider = $('#PageSlider'); var jq_bar = $('#PageSliderBar'); var range = slideMax/((showPageNum===1? totalPages-startPage:Math.ceil((totalPages+(pageStyle===3?1:0))/2))*2-2); var newPage = curPage; var touchX; if (window.event && event.touches){ touchX = event.touches[0].pageX; } else { touchX = e.pageX; } var moveX = null; var initX = parseInt(jq_slider.css(opSpread)); $(document).on(moveEvent, function(e){ e.preventDefault(); if (window.event && event.touches){ moveX = event.touches[0].pageX; } else { moveX = e.pageX; } var newX = Math.max(0, Math.min(slideMax, initX+(moveX-touchX)*(opSpread==='left'?1:-1))); jq_slider.css(opSpread, newX+'px'); jq_bar.css('width', newX+'px'); newPage = startPage+(1-showPageNum)+Math.round(newX/(range*2))*showPageNum; makePageNum(newPage); }).on(endEvent, function(){ $(document).off(moveEvent); $(document).off(endEvent); if (newPage!==curPage){ jumpPage(newPage); } else { pageChange(); } sliderMove = false; }); }); /*------------------------------------------------------------------------- ページ読み込み -------------------------------------------------------------------------*/ function loadPrevPage(){ var index = (opSpread==='left')? 0:2; prevPage = curPage-showPageNum; for (;;){ var result = loadPage(index, prevPage); if (result==='success'){ break; } if (result==='start'){ if (opSpread==='left'){ isLeftEnd = true; } else { isRightEnd = true; } break; } else{ prevPage -= showPageNum; } } } function loadNextPage(){ var index = (opSpread==='left')? 2:0; nextPage = curPage+showPageNum; for(;;){ var result = loadPage(index, nextPage); if (result==='success'){ break; } else if (result==='end'){ if (opSpread==='left'){ isRightEnd = true; } else { isLeftEnd = true; } break; } else { nextPage += showPageNum; } } } //見開きページを読み込み function loadPage(boxNum, pageNum){ scrollTo(0,1); if (showPageNum===2){ if (opSpread==='left'){ return loadImage($('#SliderArea .pageArea').eq(boxNum), pageNum, pageNum+1); } else { return loadImage($('#SliderArea .pageArea').eq(boxNum), pageNum+1, pageNum); } } else { return loadImage($('#SliderArea .pageArea').eq(boxNum), pageNum); } } //画像読み込み function loadImage(jq_page, pageLeft, pageRight){ var htmlStr=''; var leftNum, rightNum; var imgSrcL, imgSrcR; var thumSrc; jq_page.find('.linkLayer').html(''); jq_page.css('background-color', '#333'); //冊子のラスト if (pageLeft>=totalPages && pageRight===void(0) || pageLeft>=totalPages && pageRight!==void(0) && pageRight>=totalPages){ jq_page.find('.thumbnail').html(''); jq_page.find('.mainImg').html(''); return 'end'; } //すべてhideページの場合 if ($.inArray(pageLeft, hidePages)!==-1 && ($.inArray(pageRight, hidePages)!==-1 || pageRight===void(0))){ jq_page.find('.thumbnail').html(''); jq_page.find('.mainImg').html(''); return 'hide'; } //画像パス生成・サムネイルhtml生成 if (pageLeft>=startPage && pageLeft'; thumSrc = imgSrcL+'tmb.jpg'; imgSrcL += imgSize+'00_'; } if (pageRight!==void(0) && pageRight>=startPage && pageRight'; thumSrc = imgSrcR+'tmb.jpg'; imgSrcR += imgSize+'00_'; } //冊子の先頭 if (!imgSrcL && !imgSrcR){ jq_page.find('.thumbnail').html(''); jq_page.find('.mainImg').html(''); return 'start'; } //hideページがある場合・背景を白に if ($.inArray(pageLeft, hidePages)!==-1 || $.inArray(pageRight, hidePages)!==-1){ jq_page.css('background-color', '#fff'); } //右寄せ・左寄せ if (pageRight!==void(0)){ if (imgSrcL && !imgSrcR){ jq_page.css('text-align', 'left'); jq_page.find('.mainImg').css('left', 0).css('right', 'auto'); } else if (!imgSrcL && imgSrcR){ jq_page.css('text-align', 'right'); jq_page.find('.mainImg').css('left', 'auto').css('right', 0); } } //サムネイルを先に表示 var thumImg = new Image(); var setting = false; $(thumImg).on('load', function(){ if (!setting){ setting = true; $('#Loading').hide(); makeImgHtml(); } }); thumImg.src = thumSrc; jq_page.find('.thumbnail').html(htmlStr); function makeImgHtml(){ //html生成 htmlStr=''; var edgePixW = bookW*imgSize%sliceW===0? sliceW:bookW*imgSize%sliceW; var edgePixH = bookH*imgSize%sliceH===0? sliceH:bookH*imgSize%sliceH; var i,j,w,h; for (i=0; i'; } } if (imgSrcR){ for (j=i*sliceNumW; j<(i+1)*sliceNumW; j++){ w = ((j+1)%sliceNumW===0)? edgePixW:sliceW; h = (i===sliceNumH-1)? edgePixH:sliceH; htmlStr += ''; } } if (i'); newDiv .css('top', parseInt(l.attr('y'))*imgSize+'px') .css('left', (offset+parseInt(l.attr('x'))*imgSize)+'px') .css('width', parseInt(l.attr('w'))*imgSize+'px') .css('height', parseInt(l.attr('h'))*imgSize+'px') .css('background-color', linkRgba1) .css('border-color', linkRgba2) .css('border-width', Math.ceil(1/curZoom)+'px'); if (l.attr('adress')){ newDiv.attr('data-adress', l.attr('adress')); } else { newDiv.attr('data-orderNo', l.attr('orderNo')); } jq_page.append(newDiv); } } /*------------------------------------------------------------------------- タッチイベント -------------------------------------------------------------------------*/ var swipeWidth = 50; var touchX, touchY; //タッチ開始位置 var moveX, moveY; //移動後の指位置 var scrollX, scrollY; //ページスクロール初期位置 var pinchX, pinchY; //ピンチ中心座標 var pinchVal; //ピンチ時の指の間隔 var isPinch=false; //ピンチ中 var isSwipe=false; //スワイプ中 var pinchCancel=false; //ピンチ処理キャンセル var clickTimer=null; //ダブルクリック判定用タイマー保持 var tapLink; //リンク var moveTimerID; //タップ判定用タイマー var moveFlg; //move判定 var touchNum=0; //タッチした指の数 $('#SliderArea').on(startEvent, function(e){ e.preventDefault(); pinchCancel = false; if (isSwipe || sliderMove){ return; } if ($(e.target).hasClass('linkArea')){ tapLink = e.target; } else { tapLink = null; } if (window.event && event.touches) { var t=event.touches; if (!isSwipe && t.length>=2 && touchNum>0){ pinchVal = Math.sqrt(Math.pow(t[1].pageX-t[0].pageX, 2) + Math.pow(t[1].pageY-t[0].pageY, 2)); isPinch = true; touchNum++; } else { touchX = t[0].pageX; touchY = t[0].pageY; isPinch = false; touchNum = 1; } } else { touchX = e.pageX; touchY = e.pageY; isPinch = false; } moveX = null; moveY = null; moveFlg = false; scrollX = parseInt($('#SliderArea .pageArea').eq(1).css('left')); scrollY = parseInt($('#SliderArea .pageArea').eq(1).css('top')); $(document).off(moveEvent).off(endEvent); $(document).on(endEvent, touchEnd); moveTimerID = setTimeout(function(){ $(document).on(moveEvent, touchMove); }, 100); }); function touchMove(e){ e.preventDefault(); if (window.event && event.touches) { var t=event.touches; if (isPinch && !isSwipe && t.length>=2){ var newPinchVal; pinchX = (t[0].pageX + t[1].pageX)/2; pinchY = (t[0].pageY + t[1].pageY)/2; newPinchVal = Math.sqrt(Math.pow(t[1].pageX-t[0].pageX, 2) + Math.pow(t[1].pageY-t[0].pageY, 2)); zoomIn(curZoom*(newPinchVal/pinchVal), pinchX, pinchY); pinchVal = newPinchVal; } else { moveX = t[0].pageX; moveY = t[0].pageY; } } else { moveX = e.pageX; moveY = e.pageY; } if (touchX !== moveX || touchY !== moveY){ moveFlg = true; } if (isPinch){ return; } else if (curZoom===initZoom){ //全体表示の場合:スワイプ $('#SliderArea').css('left', -1*windowW+moveX-touchX+'px'); isSwipe = true; } else { //拡大表示の場合:ドラッグ var newX = scrollX+moveX-touchX; var newY = scrollY+moveY-touchY; if (newX > windowW/2){ newX = windowW/2; } else if (newX < -1*bookW*imgSize*showPageNum*curZoom+windowW/2){ newX = -1*bookW*imgSize*showPageNum*curZoom+windowW/2; } if (newY > (windowH-(fixHeader?headerH:0))/2){ newY = (windowH-(fixHeader?headerH:0))/2; } else if (newY < -1*bookH*imgSize*curZoom+(windowH-(fixHeader?headerH:0))/2){ newY = -1*bookH*imgSize*curZoom+(windowH-(fixHeader?headerH:0))/2; } $('#SliderArea .pageArea').eq(1) .css('left', newX+'px') .css('top', newY+'px'); } } function touchEnd(){ $(document).off(moveEvent).off(endEvent); clearTimeout(moveTimerID); touchNum = Math.max(0, touchNum-1); if (isPinch){ return; } //リンクをタップ if (tapLink && !moveFlg && $(tapLink).attr('data-adress')){ currentPage = curPage; if ($(tapLink).attr('data-adress').match(/page:(.*)/)){ var page = parseInt(RegExp.$1); $('#Loading').show(); jumpPage(page); $('#Loading').hide(); // } else if ($(tapLink).attr('data-adress').match(/javascript:openCart\('(.*)'\)/)){ // var url = RegExp.$1; // openCart(url); } else if ($(tapLink).attr('data-adress').match(/javascript:/)){ eval($(tapLink).attr('data-adress')); } else { location.href = $(tapLink).attr('data-adress'); } return; } if (!moveFlg){ if (clickTimer){ //ダブルタップ clearTimeout(clickTimer); clickTimer=null; if (curZoom swipeWidth && !isLeftEnd){ //スワイプ(右) $('#SliderArea').addClass('move').css('left', 0); setTimeout(function(){ $('#SliderArea li').eq(0).before($('#SliderArea li').eq(2)); $('#SliderArea').removeClass('move').css('left', -1*(windowW+borderW)+'px'); isRightEnd = false; if (opSpread==='left'){ nextPage = curPage; curPage = prevPage; loadPrevPage(); } else { prevPage = curPage; curPage = nextPage; loadNextPage(); } pageChange(); shareLinkChange(); isSwipe = false; }, 500); } else if (isSwipe && touchX-moveX > swipeWidth && !isRightEnd){ //スワイプ(左) $('#SliderArea').addClass('move').css('left', -2*(windowW+borderW)+'px'); setTimeout(function(){ $('#SliderArea li').eq(2).after($('#SliderArea li').eq(0)); $('#SliderArea').removeClass('move').css('left', -1*(windowW+borderW)+'px'); isLeftEnd = false; if (opSpread==='left'){ prevPage = curPage; curPage = nextPage; loadNextPage(); } else { nextPage = curPage; curPage = prevPage; loadPrevPage(); } pageChange(); shareLinkChange(); isSwipe = false; }, 500); } else if (isSwipe) { //スワイプキャンセル $('#SliderArea').addClass('move').css('left', -1*(windowW+borderW)+'px'); setTimeout(function(){ $('#SliderArea').removeClass('move'); isSwipe = false; }, 500); } else { } } /*------------------------------------------------------------------------- 拡大 -------------------------------------------------------------------------*/ function zoomIn(newZoom, x, y){ newZoom = Math.min(newZoom, maxZoom); if (pinchCancel || curZoom!==initZoom && newZoom<=initZoom){ $(document).off(moveEvent); $(document).off(endEvent); zoomReset(); pinchCancel = true; return; } if (isPC){ $('#SliderArea .pageArea').eq(1).css({ width: bookW*imgSize*showPageNum*newZoom+'px', height: bookH*imgSize*newZoom+'px' }); $('#SliderArea .pageAreaInner').eq(1).css('transform', 'scale('+newZoom+')'); } else { $('#SliderArea .pageAreaInner').eq(1).css('zoom', newZoom); } $('#SliderArea .pageAreaInner').eq(1).find('.linkArea').css('border-width', Math.ceil(1/newZoom)+'px'); scrollX -= (x-scrollX)*(newZoom/curZoom-1); scrollY -= (y-scrollY)*(newZoom/curZoom-1); $('#SliderArea .pageArea').eq(1).css('left', scrollX+'px').css('top', scrollY+'px'); curZoom = newZoom; } /*------------------------------------------------------------------------- ヘッダー -------------------------------------------------------------------------*/ //メニューボタン $('#MenuBtn').on(startEvent, menuToggle); function menuToggle(){ var menuH = $('#Menu').height(); if ($('#MenuBtn').hasClass('open')){ $('#IndexList').animate({ height: '0' }, 500, function(){ $('#Menu').css('top', 'auto').css('bottom', '0').removeClass('open'); }); $('#MenuBtn').removeClass('open'); } else { $('#IndexList li.click').removeClass('click'); if ($('#JumpAreaBtn').hasClass('open')){ jumpAreaToggle(); } if ($('#ShareBtn').hasClass('open')){ shareToggle(); } if ($('#HelpBtn').hasClass('open')){ helpAreaToggle(); } $('#IndexList').animate({ height: (windowH-headerH)+'px' }, 500); $('#Menu').animate({ bottom: (windowH-headerH-menuH)+'px' }, 500, function(){ $('#Menu').css('bottom', 'auto').css('top', '0').addClass('open'); }); $('#MenuBtn').addClass('open'); } } //ページジャンプ表示 $('#JumpAreaBtn').on(startEvent, jumpAreaToggle); function jumpAreaToggle(){ if ($('#JumpAreaBtn').hasClass('open')){ $('#JumpAreaBtn').removeClass('open'); $('#JumpArea').animate({ height: '0' }, 500); } else { $('.cmnBtn.click').removeClass('click'); if ($('#MenuBtn').hasClass('open')){ menuToggle(); } if ($('#ShareBtn').hasClass('open')){ shareToggle(); } if ($('#HelpBtn').hasClass('open')){ helpAreaToggle(); } var defVal = Math.max(curPage+nombre, startPage+nombre); if (defVal<0 && minusPage===0){ defVal = ''; } if (defVal==='' && curPage+nombre+1===0){ defVal = 0; } $('#JumpPageInput').val(defVal); $('#JumpTitle').css('margin-top', (windowH-200)/2+'px'); $('#JumpArea').animate({ height: (windowH-headerH)+'px' }, 500); $('#JumpAreaBtn').addClass('open'); } } //ページジャンプ 「移動する」ボタン $('#JumpBtn').on(startEvent, function(e){ e.stopPropagation(); var page = parseInt($('#JumpPageInput').val(),10)-nombre; if (isNaN(page)){ alert('正しい値を入力して下さい'); } else { $(this).addClass('click'); $('#JumpPageInput').blur(); setTimeout(function(){ jumpAreaToggle(); setTimeout(function(){ jumpPage(page); }, 1000); }, 500); } }); //ページジャンプ 「+」ボタン $('#JumpPageAdd').on(startEvent, function(){ var num = parseInt($('#JumpPageInput').val(),10); if (!isNaN(num)){ $('#JumpPageInput').val(Math.min(num+1, totalPages-1+nombre)); } else { $('#JumpPageInput').val(startPage); } }); //ページジャンプ 「-」ボタン $('#JumpPageDec').on(startEvent, function(){ var num = parseInt($('#JumpPageInput').val(),10); if (!isNaN(num)){ var minPage = (minusPage===0)? Math.max(startPage+nombre, 0):startPage+nombre; $('#JumpPageInput').val(Math.max(num-1, minPage)); } }); //シェアボタン $('#ShareBtn').on(startEvent, shareToggle); function shareToggle(){ var menuH = $('#ShareList').height(); if ($('#ShareBtn').hasClass('open')){ $('#ShareArea').animate({ height: '0' }, 500); $('#ShareBtn').removeClass('open'); } else { shareLinkChange(); if ($('#MenuBtn').hasClass('open')){ menuToggle(); } if ($('#JumpAreaBtn').hasClass('open')){ jumpAreaToggle(); } if ($('#HelpBtn').hasClass('open')){ helpAreaToggle(); } $('#ShareArea').animate({ height: menuH+'px' }, 500); $('#ShareBtn').addClass('open'); } } function shareLinkChange(){ var url = location.href; url = url.replace('sp.html', 'index.html'); if (url.indexOf('directPage')!==-1){ url = url.replace(/directPage=-?\d*/, 'directPage='+(Math.max(0, curPage)+nombre)); } else if (url.indexOf('?')!==-1){ url += '&directPage='+(Math.max(0, curPage)+nombre); } else { url += '?directPage='+(Math.max(0, curPage)+nombre); } url = url.replace(/:/g, '%3a') .replace(/\//g, '%2f') .replace(/\./g, '%2e') .replace(/\?/g, '%3f') .replace(/=/g, '%3d') .replace(/&/g, '%26'); $('#ShareFacebook a').attr('href', 'http://www.facebook.com/sharer.php?u='+url); $('#ShareTwitter a').attr('href', 'https://twitter.com/share?url='+url); $('#ShareMail a').attr('href', 'mailto:?body='+url); } //見開きリンクボタン $('#PageLinkBtn').on(endEvent, function(){ var paramPage = Math.max(0, curPage)+nombre; var adjust = (pageStyle===3 && nombre%2===0 || pageStyle===4 && nombre%2!==0)? 1:-1; if (paramPage%2!==0 && (adjust!==1 || paramPage!==totalPages-1+nombre)){ paramPage += adjust; } openPageCart(paramPage); }); //ヘルプボタン var jq_scrollArea = $('#HelpScrollInner'); var jq_scrollBar = $('#HelpScrollBar'); $('#HelpBtn').on(startEvent, helpAreaToggle); function helpAreaToggle(){ if ($('#HelpBtn').hasClass('open')){ $('#HelpArea').css('top', -1*windowH+'px'); $('#HelpBtn').removeClass('open'); } else { $('#HelpArea').css('top', headerH+'px'); $('#HelpBtn').addClass('open'); var scrollH = windowH-96; if (jq_scrollArea.get(0).scrollHeight
'+$(ary[i]).attr('title')+'
'+ '
    '; makeIndexSub(childPageList); htmlStr += '
'; } else { htmlStr += listStr($(ary[i]).attr('no'), $(ary[i]).text()); } } } var htmlStr=''; makeIndexSub(pageList); $('#Menu').html(htmlStr); function listStr(no, txt){ var cla = (no==='')? ' class="midashi"':''; txt = txt.replace(/<\/?font[\s\w\d=#"]*>/g, ''); return '
'+txt+'
'; } //イベント登録 $('#IndexList li').on(startEvent, function(e){ e.stopPropagation(); var _this = this; var jq_index = $('#Menu'); var menuH = jq_index.height(); var touchY; if (window.event && event.touches) { touchY = event.touches[0].pageY; } else { touchY = e.pageY; } var moveY = null; var initY = parseInt(jq_index.css('top')); var moveFlg = false; $(document).on(moveEvent, function(e){ e.preventDefault(); if (windowH-headerH>menuH){ moveY = 0; return; } if (window.event && event.touches) { moveY = event.touches[0].pageY; } else { moveY = e.pageY; } if (Math.abs(touchY-moveY)>3){ moveFlg = true; } var newTop = initY+moveY-touchY; if (newTop>0){ newTop = 0; } else if (newTop= 8) || ua.match(/Android .* Chrome\/.* Mobile/)){ cartWin = window.open(url); } else if(!cartWin || cartWin.closed || ua.indexOf('iPhone')>=0 || ua.indexOf('Android')>=0 || ua.indexOf('iPad')>=0){ cartWin = window.open(url, 'cart'); } else if(ua.indexOf('Edge')>=0 || (ua.indexOf('Chrome')===-1 && ua.indexOf('Safari')===-1)){ cartWin.close(); cartWin = window.open(url); } else { cartWin.location.href = url; } cartWin.focus(); } else { alert('open_typeを指定してください'); } }