Movable Type 備忘録

 Wrap Scroll / ブラウザースクロールと連動するサイドバー

  • May142007
  • Vote:
    http://bizcaz.com/archives/2007/05/14-000031.php
  • Categories: JavaScript
  • Tags:
  • Social Bookmark

こんにちわ^^
あっち行ったり、こっち行ったりと、今日は何かと忙しかった(振り回された)bzbellです (>∀< )

チョビッと疲れ気味なのでこのエントリ投稿したら、すぐ寝ます ( ̄、 ̄@)zzz

さて、今回はブラウザーのスクロールに連動してサイドバーもいっしょにスクロールするカスタマイズをやってみましたのでご紹介です。

ブラウザーのスクロールバーでスクロールすると、コンテンツやサイドバーなどは固定されているので、見えなくなってしまうのが通常ですよね。
今回のカスタマイズでは、スクロール量に合わせてサイドバーをいい具合に移動させるようなカスタマイズになります。

ブラウザーのスクロール量に連動させるには、こちらのyoumosさんで配布されてる、wrapscroll.jsを使用します。
wrapscroll.js

このwrapscroll.jsは基本的には有償ですが、個人利用(非営利)の場合は無償で使うことができます。
アフィリエイトは … … … どうなんでしょ、商用利用になるのかなぁ (; ̄∇ ̄A

とりあえずサンプルですね ( ̄∇ ̄)b
ANNEX::MovableType MEMO

上記はわたしのサイトで配布しているテンプレートのサンプルページになります。
そのサンプルページのサイドバーをブラウザーのスクロールに連動させてみました。

ディレクトリ構成

今回のカスタマイズでは、以下のようなディレクトリ構成として説明します。

  1. http://●●●.com/
  2.   |
  3.   +-- index.html <-- 各自のトップページ
  4.   +-- styles-site.css <-- 各自のスタイルシート
  5.   |
  6.   +-- js/
  7.   | +-- wrapscroll/ <-- 新規作成
  8.   | | +-- wrapscroll.js
  9.   | | +-- wrapscroll.css
  10.   | |

カスタマイズ

  1. まず、wrapscroll.jsを入手します。
    上記URLからwrapScroll_070.zipという圧縮ファイルをダウンロードします。

    そして、適当なフォルダに展開して、上記ディレクトリ構成のようにアップロードします。

  2. 次に各テンプレートを変更します。


    Warning: include() [function.include]: URL file-access is disabled in the server configuration in /virtual/bzbell/public_html/archives/2007/05/14-000031.php on line 95

    Warning: include(http://bizcaz.com/widget/litebox.php?url=http://bizcaz.com/image/zu/wrapscroll.png&width=240&height=183&title=&noscript=0) [function.include]: failed to open stream: no suitable wrapper could be found in /virtual/bzbell/public_html/archives/2007/05/14-000031.php on line 95

    Warning: include() [function.include]: Failed opening 'http://bizcaz.com/widget/litebox.php?url=http://bizcaz.com/image/zu/wrapscroll.png&width=240&height=183&title=&noscript=0' for inclusion (include_path='.:/usr/local/lib/php') in /virtual/bzbell/public_html/archives/2007/05/14-000031.php on line 95

    最初はお手軽なメインページやテストページで試してみてください。

    先ほどサンプルとして示したサンプルページは左図のような構造になっています。

    上記緑色の範囲内で、黄色い部分をブラウザーのスクロール量に連動させてスクロールさせています。
    そして、青色の部分がスクロールするブロックで、新規に追加してます。

    上記図を元に、各自のテンプレート内の、スクロールさせたいブロックを<div id="movable">~</div>で囲ってください。

  3. 次に、スタイルシートを作成します。
    上記サンプルで使用しているスタイルシートを以下に記します。

    wrapscroll.css

    1. #movable {
    2.     padding-top: 2em; <-- スクロールするブロックのトップを調整
    3.     position: absolute; <-- ★重要(忘れないで!!)
    4. }

    動的に移動するブロック(div id="movable">~</div>)の属性にposition:absoluteを追加します。
    これを忘れると思った動作しませんのでご注意ください。

    作成したら上記ディレクトリ構成のようにサーバにアップロードします。

  4. 次に、<head>~</head>内に以下のコードを追加します。

    <head>~</head>の間に追加

    1. <link rel="stylesheet" href="<$MTBlogURL$>js/wrapscroll/wrapscroll.css" type="text/css" />
    2. <script type='text/javascript' src="<$MTBlogURL$>js/wrapscroll/prototype.lite.js"></
    3. <script type='text/javascript' src="<$MTBlogURL$>js/wrapscroll/wrapscroll.js"></

    青い字の部分を各自の環境に合わせて変更します。
    prototype.jsを既に読み込み済みの場合は、prototype.lite.jsは必要ありません。

    そしてもう1つ、以下のコードを追加することで、wrapscroll.jsを実行させます。

    wrapscroll.js実行

    1. <script type="text/javascript">new wrapScroll ('movable', 'blog');</script>

    青い字の部分がスクロールするブロックのIDになります。
    赤い字の部分は移動する領域のIDを指定します。

    サンプルでは、<div id="blog">~</div>の高さを移動範囲としています。

  5. 一通り変更したら、保存して再構築します。

以上でブラウザーのスクロール量に応じて、サイドバーをスクロールさせることができました ( ̄∇ ̄)/
とりえあず、youmosさんの説明にもあるように、WIN/IE6、IE7、Firefox2.0、Opera9.2では問題ありませんでした♪

wrapscroll.jsの詳細については配布元の説明をご覧ください。
wrapscroll.js

 Trackback Pings(0)

No trackbacks found.

 Comments(5)

#1: Posted by oscarお敵には @ May 14, 2007 [REPLY]
user-pic

こんにちは。
これ、アクセント的にはすごく良いですよね。
ただ、これとページ内ゆっくりスクロール同時に使ったら、動きがガクガクになってしまいました。
お互いにウェイト入れてる関係でしょうね。

ちなみにうちでは、prototype.lite.jsじゃなくて、prototype.jsにして使ってます。どのみち、他で使っているので・・・

#2: Posted by bzbell @ May 14, 2007 [REPLY]
user-pic

>>1 oscarお敵には さん

こんにちわ^^

oscarさん・・・ですよね (; ̄∇ ̄A

> お互いにウェイト入れてる関係でしょうね。

二兎を追うものは・・・てやつですね。

わたしのサイトではスクロールに連動して追従させたいことってなかったので、わたしはゆっくりスクロールのみ使用してます ( ̄∇ ̄)

#3: Posted by youmos @ June 11, 2007 [REPLY]
user-pic

はじめまして。
wrapScrollの紹介をしていただき、ありがとうございます。

>これとページ内ゆっくりスクロール同時に使ったら、動きがガクガクになってしまいました
確かにガクガクした動きをしていました。前から気になっていた部分でしたが、コードをかなり修正しなければならず、最近やっと時間を取って修正バージョンをリリースしました。

移動のアニメーションの動きも速度を変えたりできるようになったので、改善されたかと思います。

#4: Posted by bzbell @ June 11, 2007 [REPLY]
user-pic

>>3 youmos さん

はじめまして^^

いつもサイトの方拝見させてもらってます♪

> 移動のアニメーションの動きも速度を変えたりできるようになったので、改善されたかと思います。

さっそく両立できるようになったバージョンアップ版を使わせていただきます♪

#5: Posted by oscar @ June 14, 2007 [REPLY]
user-pic

>>3 youmos さん
>>4 bzbell さん
>修正バージョンをリリースしました。
MT4周りの試行錯誤を先に行っていたので、今頃確認終わりました。
0.9にして動きが違うように感じていたのは、このせいだったのですね。

同時使用しても、思い通りの動きをしてくれるようになりました。

bzbellさん大変な中、コメントをしてくださってありがとうございます。

 Post a Comment

 

コメント用フィード