2008-04-18
こだわりのページ内リンクスムーズスクロール scrollsmoothly.js
PC |
「ページ内リンク スムーズスクロール」でググればいくらでも出てくるシロモノだけど、自分の要望をすべて満たすものが無かったので作ってみた。
以下のソースコードをサンプルページのようにhead内で読み込むだけでOK。
- ソースコード(Javascript)
- scrollsmoothly.js
読み込み例
<script type="text/javascript" src="scrollsmoothly.js"></script>
特徴
- 縦横斜めにスクロール可能
- スクロール中にもリンクをクリック可能
- 別のページからのリンクでも指定の場所までスムーズスクロールします
- MIT License
動作確認ブラウザ
関連エントリー
トラックバック - http://d.hatena.ne.jp/KAZUMiX/20080418/scrollsmoothly
- [CSS][その他]巡回
- 【ライブラリ】ページ内リンクスムーズスクロール scrollsmoothly.js
- KAZUMiX memo - scrollsmoothly.jsを更新しました
- scrollsmoothly.jsでページ内スムーズスクロール
- 独自レイアウト|素晴らしいページ内リンクのスムーズスクロール
- 反応のあった販促物は
- スクロールをスムーズにしてくれるJavascript scrollsmoothly.js
- KAZUMiX memo - ものすごい勢いで横スクロールさせるJavaScript
- KAZUMiX memo - 面白いだけで役に立たないUI
- KAZUMiX memo - iPhoneのタッチスクリーンを再現するブックマークレ...
- ページ内リンクのスムーズスクロールはもうこれに決めた!動作感が...
- Cli@ - こだわりのページ内リンクスムーズスクロール scrollsmoothl...
これを利用させていただくことにより、問題が解決しました。
今後のご活躍をお祈り申し上げます。
どもです。このスクリプトは動きの気持ちよさにもこだわってみました。
何より他のライブラリに依存していないところが素晴らしいです。
拝借して色々実験していたのですが、
「別のページからのリンクでのスクロール」が
一旦、そのアンカー部分を表示した後で、
また一番上からスクロールし直すという挙動のようですね。
(スクロール動作までの時間を弄んでいて気づいた)
これだとなんかスクロールする意味が希薄かもしれませんね…。
<a href=”ホニャララ.html#ホゲホゲ”>のそもそもの動作を
捻じ曲げるわけですから、やっぱり難しいのかな…。
そもそもの挙動をのっとるのは難しくてひとまず諦めました。何か方法が見つかれば何とかしたいです。
他のものもいろいろ試しましたが、動きがなんとといっても1番気持ちいいですね。
少し初歩的な質問なのですが、よろしいでしょうか。
JavaScriptコード内の、
(function(){
var easing = 0.25;
var interval = 20;
の部分なのですが、
他のブラウザはこのままでいいけれど、
例えば、ある特定のブラウザに対してだけその数値を変えたかったとすると、どういったコードの表記になるのでしょうか。
初歩的な質問で恐縮ですが、どうかよろしくお願いします。
ビールの一箱でも贈呈したいくらいです。
こういう無償で活動されている方にお礼をしたい場合は
どうしたら良いのか社内のプログラマに聞いた所
「神!」と呼べば良いと言われました。。
ありがとうございます神様。
ライセンスはいかがいたしましょうか・・。
活用させていただきます!
スライドショー的なページならそういうインターフェースも有りですね。
ひとつだけ、、
飛び先のアンカーが文書の最下部に近いと、イーズアウトされないのが残念。
飛び先が表示の先頭になることを前提に座標の処理をしていたので、改良の余地有りですね。
早速実装してみたのですが、
flash上のボタンからだとスクロールせずに、
通常のアンカーのようになるのですが、
スルスルっと動かすにはどうすればよいでしょうか?
やろうとするとFlashからJavaScriptを呼び出し、JavaScript側もそれに対応するようにするかたちになります。埋め込んだだけで使えるこのスクリプトの仕様とは別物になってしまいます。
スムーススクロール系で一番残念に思うのが強制的に飛び先までいってしまうものが多いのでぜひとも改良してください!!
スムーズスクロール・・・いろいろ検索して試行錯誤して漂流してこちらにたどり着きました。
素敵です!!自分が理想としていたモノができそうです!!いや、できます!!
ありがとうございました。
今度の仕事のサイトで活用させていただきます。どうもありがとうございます!!
サイト制作初心者なので初歩的な質問かもしれませんが、
「こだわりのページ内リンクスムーズスクロール scrollsmoothly.js 動作サンプル」
のソースを写して、勉強させてもらっているのですが、(悪魔で自分のPC内での使用ですが、もし違反行為でしたらすみません)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
の部分を入れると文字化けになってしまうのですが、何故なのでしょうか?
「こだわりのページ内リンクスムーズスクロール scrollsmoothly.js 動作サンプル」のページを見ても文字化けしませんが、自分のPCに写して見ると文字化けしてしまいます。
それと<?xml version="1.0" encoding="utf-8"?>の記述が無いのも気になります。
変な質問ですが、どうかよろしくお願いします。
文字化けの原因は文字コードだと思います。元ソースの文字コードはutf-8ですが、保存した時にshift_jisになってしまったのではないでしょうか?
<?xml version="1.0" encoding="utf-8"?>の記述は、あえて入れていません。これを入れるとIE6が後方互換モード(IE5.5相当)の動作になってしまうためです。対策が面倒になるためため、私に限らず入れていないサイトがほとんどだと思います。
初歩的なミスで質問してしまって失礼しました。
<?xml version="1.0" encoding="utf-8"?>の記述は
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>で対処していますが、やはり入れないほうが良いのでしょうか?
連続的に質問してしまって申し訳ないですが、よろしくお願いします。
通常ブラウザの場合、「#」だけでページトップに移動します。
対応できませんか?m(_)m
IE6の場合は出力しないという分岐をしているのであれば問題ありません。そもそもIE6で正常表示されなくても気にしないというスタンスもありです。 Googleが今後はIE6のサポートををしないという立場のように。
>yoshiさん
今のところ空のアンカー名に対応する予定はありません。
初歩的な質問で恐縮ですが、質問させてください。
基本横だけにスクロールし、たまに注釈等のコンテンツを下などに配置したりするページ(基本は一方通行)をつくっているのですが、スクロール先の場所の指定はCSSのtopやleftのところで指定すればいいのですよね?セクション4の場所をセクション3の隣に書き変えてもデフォルトの1の下に移動してしまうのですが…
初心者の質問ですいません。よろしくお願いいたします。
スクロール先の指定はhtml内のidです。
CSSの方で見た目のレイアウトの指定をします。
とてもすてきなライブラリですね。
基本的な事を聞いて申し訳ありません。
scrollsmoothly.jsをダウンロードをしたいのですが、何処から
ダウンロードすることが出来るのですか?