SafariでscrollToのbehavior:smoothが動作しないのでネットで見つけたサイトを参考にしつつ関数を作った。
横方向にsmoothにスクロールする関数なのであまり使い道はない。
5とか15の数値は適当に決めた。
再帰を使うことで行数が減る。
const scroll_smooth_x = (target) => { let now = window.pageXOffset; const flag = (target < now) ? 'left' : 'right'; const scrollMe = (now, target, flag) => { setTimeout(() => { if (target - now > 5) { if (flag === 'left') { now = now - (now - target) / 15; } else if (flag === 'right') { now = now + (target - now) / 15; } window.scrollTo(now, 0); scrollMe(now, target, flag); } else { scrollTo(target, 0); } return;}, 5); } scrollMe(now, target, flag); }