ブックマークレットについての質問です。


ページ縦幅の半分上にスクロール
javascript:window.scrollBy(0,-document.height/2)

ページ縦幅の半分下にスクロール
javascript:window.scrollBy(0,document.height/2)

上記2つのブックマークレットを、いわゆるスムーススクロールと呼ばれるような滑らかな動きでスクロールさせたいです。
http://d.hatena.ne.jp/zzz4sk/20110913/1315902649
↑こちらの最上部へスクロールするブックマークレット(【追記2】の不具合修正版)を参考に作ってみようとしたのですが、
私のjavascriptの知識が少ないこともあり上手く出来ませんでした。
どのように書けばスムーススクロールとページ半分のスクロールを実現出来るのでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/09/17 15:22:13
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:u_7cc No.1

回答回数32ベストアンサー獲得回数14

ポイント200pt

ページ縦幅の半分 ・・・ 結構移動しちゃいますけど、その距離で大丈夫でしょうか?
とりあえず下に移動するコードを置いておくので動作確認してください。

javascript: (function(){

var root;

if ( document.documentElement.scrollTop ) {
  root = document.documentElement;
}else if (document.body.scrollTop ) {
  root = document.body;
}else {
  scrollBy(0, 1);
  root = document.body.scrollTop ? document.body : document.documentElement;
};

var scrollDistance = root.scrollHeight/2
  , count = 1;

var timeID = window.setInterval(function(){
  scrollBy(0, scrollDistance/100);
  if(count++ === 100){
    clearInterval(timeID);
  }
}, 10)

})()
id:hellfencer

ありがとうございます!PCのブラウザ、スマートフォンともに動作しました。
半分上に移動させるバージョンも作って、こちらも動作確認出来ました。
まさに求めていた物で大変感謝しております。

縦幅の半分はPCだと移動しすぎに見えますが、
スマートフォンの画面およびスマホ用サイトの縦長な環境で使いたかったのです。

2013/09/17 15:20:29

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません