// ==UserScript== // @name TOKIMEKI Media ArrowShortcut Plus // @namespace https://tokimeki.blue/ // @version 0.1.1 // @description TOKIMEKI本家対応済みにつき削除__TOKIMEKIでMedia欄から画像を開いたときの矢印キーの動作を変更する__ // @author mudo34 // @match https://tokimeki.blue/* // @icon https://www.google.com/s2/favicons?domain=tokimeki.blue // @grant none // @noframes // ==/UserScript== /* - 2026/7/17のメディアタイムラインリニューアルで対応されたので全文コメントアウト - 折を見て削除します。ご利用ありがとうございました。 */ // (function() { // 'use strict'; // // /* クリック時の処理 */ // document.addEventListener('click', e => { // // const wrapper = e.target.closest('.media-content-wrap'); // if(!wrapper) return; // // const prev = e.target.closest('.media-content-nav__item--prev'); // const next = e.target.closest('.media-content-nav__item--next'); // // // Ctrl中は本来の機能で通す // if(e.ctrlKey) return; // // if(prev) { // emblaSlideClick(e, wrapper, 'prev'); // return; // } // if(next) { // emblaSlideClick(e, wrapper, 'next'); // } // // }, true); // // /* 矢印キーの処理 */ // document.addEventListener('keydown', e => { // // if( e.key !== 'ArrowLeft' && e.key !== 'ArrowRight' ) return; // // // Ctrl中は本来の機能で通す // if(e.ctrlKey) return; // // const wrapper = document.querySelector('.media-content-wrap'); // // if(!wrapper) return; // // if(e.key === 'ArrowLeft') { // emblaSlideClick(e, wrapper, 'prev'); // return; // } // // if(e.key === 'ArrowRight') { // emblaSlideClick(e, wrapper, 'next'); // } // // }, true); // // /* スライドの現在地(transformXを取得) */ // function getTranslateX(el) { // const matrix = new DOMMatrix(getComputedStyle(el).transform); // return Math.abs(matrix.m41); // } // // /* スライド移動処理 */ // function emblaSlideClick(e, wrapper, navi) { // const btn = wrapper.querySelector('.embla__' + navi); // if(!btn) return; // // const embla = wrapper.querySelector('.embla'); // const container = wrapper.querySelector('.embla__container'); // if(!embla || !container) return; // // const x = getTranslateX(container); // const maxX = container.scrollWidth - embla.clientWidth; // // /* 表示中の画像の位置判定 */ // /* ちょっとでも見えたらその画像見てることにする */ // const slides = wrapper.querySelectorAll('.embla__slide'); // const step = slides[1].offsetLeft - slides[0].offsetLeft; // const threshold = step * 0.8; // // const isLast = (x >= maxX - threshold); // const isFirst = (x <= threshold); // // if( (navi === 'prev' && isFirst) || (navi === 'next' && isLast) ) return; // // e.preventDefault(); // e.stopPropagation(); // e.stopImmediatePropagation(); // btn.click(); // } // // })();