iBooksがバージョン3.1になり、日本語縦書き文書の横スクロールに対応した(追記アリ)

「iBookstore」が日本でも提供開始され、鬼の速さで「電子書店完全ガイド」を書いたわけですが、個人的にとても嬉しかったのが掲題の件なのです。

iBooksがバージョン3.0になり、日本語縦書き表記(EPUB3)に対応した – 見て歩く者 by 鷹野凌 – ※2012年10月24日

半年前、iBooks 3.0が出たときに書いたエントリーです。

スクロール。ページの概念が無くなり、巻物のように延々行が続くのかと思いきや……

横へではなく縦にスクロールします。違う!そうじゃないんだ!

と、思いっきりツッコミを入れていました。英語圏(の翻訳記事)では、「これで”ページ”の概念が消える!」などと(Apple大好きな人から)絶賛されていたのですが、日本語縦書き文書に関しては「ナニコレ?」な実装だったんですよね。実際、話題になっていたのも電子書籍の制作をしている方々だけ、という感じでした。

その「違うんだ!」という思いをぶつけたのがこの寄稿記事。

Kinoppyで試す:「エロエロ草紙」など配信――文化庁 eBooks プロジェクトの可能性 – ITmedia eBook USER ※2013年2月5日

残念ながら「平治物語〔絵巻〕」を読む場合には、ただ単にページ単位で縦スクロールするだけになってしまうため、スクロールモードだとかえって読みづらくなってしまう。ちなみにiOSの「iBooks」にもスクロールモードがあるが、こちらも横方向ではなく縦方向にスクロールしてしまうため、絵巻物を読むには適さない。

実際にこういう”絵巻物”的なモノが出てきて初めて、「ああなるほど!」と思った人も多かったのではないかと思います。これらの記事が功を奏したのかどうかはわかりませんが、iBooksがバージョン3.1になったら、スクロールの向きを縦書き文書の場合は横に修正してくれたというわけです。

これを活用して今後、何か古くて新しい、面白い作品が生まれるのではないか?と思うのです。

[追記]

あのさあ……。

Google+で教えて頂きました。こんどは横書き文書が横スクロールになっちゃってるんですね。そもそも何のためのスクロールモードなのか、アップルの開発者自身が目的をちゃんと理解できていないということなのかしら? 確認してから褒めればよかった……。

タイトルとURLをコピーしました
'); /* ヘッダーの高さの変化分、paddingで調整しスクロール位置を止まらせる */ $("#header-fixed").css({ 'padding-top': `${threashold}px`, }); /* トップメニュータイプに変更する */ $("#header-container-in").removeClass('hlt-center-logo hlt-center-logo-top-menu').addClass("hlt-top-menu wrap"); $("#header-container").addClass("fixed-header"); $("#header-container").css({ 'position': 'fixed', 'top': '-100px', 'left': '0', 'width': '100%', }); const wpadminbar = document.getElementById('wpadminbar'); const headerContainerTop = wpadminbar ? wpadminbar.clientHeight : 0; $('#header-container').animate( { top: headerContainerTop, }, 500 ); } } /*固定ヘッダーの解除*/ function staticHeader() { if ($("#header-container").hasClass("fixed-header")) { /*センターロゴタイプに戻す*/ $("#header-container-in").removeClass("hlt-top-menu hlt-tm-right hlt-tm-small hlt-tm-small wrap").addClass(" hlt-top-menu wrap"); $("#header-container").removeClass("fixed-header"); $("#header-container").css({ 'position': 'static', 'top': 'auto', 'left': 'auto', 'width': 'auto', }); /* ヘッダーの高さの戻る分、padding削除しスクロール位置を止まらせる */ $("#header-fixed").css({ 'padding-top': '0', }); $("#header-fixed").remove(); } } /* 境界値をヘッダーコンテナに設定 */ var threashold = $('#header-container').height(); var prevScrollTop = -1; var $window = $(window); var mobileWidth = 1023; $window.scroll(function() { var scrollTop = $window.scrollTop(); var s1 = (prevScrollTop > threashold); var s2 = (scrollTop > threashold); var w = $window.width(); /*スクロールエリアの位置調整*/ function adjustScrollArea(selector) { if ($(selector) && $(selector).offset()) { offset = $(selector).offset().top; h = $("#header-container").height(); pt = $(selector).css('padding-top'); if (pt) { pt = pt.replace('px', ''); } else { pt = 0; } if ((scrollTop >= offset - h) && (w > mobileWidth)) { if ((pt <= 1) && $("#header-container").hasClass('fixed-header')) { $(selector).css({ 'padding-top': h + 'px', }); } } else { if (pt > 0) { $(selector).css({ 'padding-top': 0, }); } } } } /*スクロール追従エリアの調整*/ function adjustScrollAreas() { adjustScrollArea('#sidebar-scroll'); adjustScrollArea('#main-scroll'); } /*固定ヘッダーのスタイル決め*/ function adjustFixedHeaderStyle(s1, s2, w, scrollTop, mobileWidth) { if (s1 ^ s2) { if (s2 && (w > mobileWidth)) { stickyHeader(); } } /* 境界値に達したら固定化 */ if (scrollTop <= threashold || w <= mobileWidth) { staticHeader(); } } adjustFixedHeaderStyle(s1, s2, w, scrollTop, mobileWidth); adjustScrollAreas(); prevScrollTop = scrollTop; }); /*ウインドウがリサイズされたら発動*/ $window.resize(function () { /*ウインドウの幅を変数に格納*/ var w = $window.width(); if (w <= mobileWidth) { /*モバイル端末の場合*/ staticHeader(); } else { /*パソコン端末の場合*/ var scrollTop = $window.scrollTop(); if (scrollTop >= 50) { stickyHeader(); } } }); })(jQuery);