// ==UserScript== // @name Younge Ace UP Comic Viewer // @namespace phodra // @description ヤングエースUPの漫画を見開きで表示する // @include https://web-ace.jp/youngaceup/contents/* // @version 0.1 // @grant none // @downloadURL none // ==/UserScript== (function (){ //親コンテナの幅制限を解除 $(".containerMain").css('max-width', "none"); $(".col-viewer").width("auto"); $(".inner-delivery-contents").css( 'padding', "10px 0 0 0"); // 構築ボタン var $reconst = $("
").css( { 'position': "fixed", 'left': 0, 'top': 0, 'width': "100%", 'height': "20px", 'background-color': "darkgray", 'opacity': 0 } ); $reconst.text("Construction"); $reconst.on( { 'click': function() { $("div.page").remove(); if( IMAGE_LIST == null ) { GetAndConstruction(); } else { Construction(); } }, 'mouseenter': function() { $(this).stop() $(this).animate( { 'opacity': 0.8 },"fast" ); }, 'mouseleave': function() { $(this).stop() $(this).animate( { 'opacity': 0 },"fast" ); }, } ); $("body").append($reconst); //スクロールをアニメーションする標準動作を再現 var Smooth = function(e, target) { e.stopPropagation(); $('html,body').stop(); $('html,body').animate({ scrollTop: target },300); }; let $IMAGE_CONTAINER = $(".lazy-container").css( { 'display': "flex", 'flex-flow': "row-reverse wrap", 'justify-content': "center", } ); let IMAGE_LIST_URL = $IMAGE_CONTAINER.data("url"); let IMAGE_LIST; let IMAGE_NUM = { str: "", first: 1, len: 0 } // 画像URLを取得し、ページを構築する var GetAndConstruction = function() { $.getJSON( IMAGE_LIST_URL, function(data) { IMAGE_LIST = data; $IMAGE_CONTAINER.children("div[id^=img]").hide(); if( IMAGE_LIST.length>1 ) { var num_s, num_e; var img0 = IMAGE_LIST[0]; var img1 = IMAGE_LIST[1]; for( var i=img0.length-1; i>=0; i--) { if( num_e == null ) { if( img0[i] != img1[i] && (/\d/).test(img0[i]) ) num_e = i+1; } else { if( (/\D/).test(img0[i]) ) { num_s = i+1; break; } } } var org_num = img0.substring(num_s, num_e); IMAGE_NUM.str = org_num; IMAGE_NUM.first = parseInt(org_num); IMAGE_NUM.len = org_num.length; } Construction(IMAGE_NUM.first%2!=0); $reconst.text("Re Construction"); } ); }; var single = 0; var $page = $("").css( { 'margin': 0, 'margin-bottom': "10px", } ); // ページを構築する var Construction = function(_single) { if( IMAGE_LIST == null || IMAGE_LIST.length < 1 ) { return; } // 最初のページを単ページで表示するか single = _single != null? _single: !single; if( single ) { $IMAGE_CONTAINER.append( $page.clone() ); } // ページを追加していく for( var i=0; i