03 | 2017/04 |  05

  1. 無料サーバー

User forum-FC2BLOG-Info-Edit Template-Post-Edit-Upload-LogOut

CSSやJavascript自習の苦闘史を綴っていきたい。恐縮ですがJavascriptを有効にしてご覧ください。
2005年12月から社会問題も掲載!

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

 

jquery.js (1.4) による要素位置の測定と適正な配置 (4) コード解読 (3)

jQuery().scrollLeft(val)/.scrollTop(val) インスタンスメソッドの解読

これらのメソッドは引数を 1 つ取ることが出来、引数 val がある場合には指定した値だけ、window または対象要素を横または縦にスクロールさせます。

引数がなければ window または対象要素の、横または縦のスクロール量(ピクセル値、単位はなし)を取得します。

返値は val がある場合には jQuery インスタンスオブジェクトであり、val がない場合には発生しているスクロールのピクセル数です。

ここに window または対象要素にスクロールバーがない場合、引数 val にゼロでない値を指定しても当然対象要素にスクロールは発生せず、インスタンスオブジェクトが返されます。一方、引数 val がない場合にはゼロが返されます。

なお、このメソッド定義では jQuery.each クラスメソッド内に、jQuery(xxx).each インスタンスメソッドが入れ子になっており、かつ this が多用されています。その意味では、いかにも jquery.js ならではの、興味深いコードとなっています。

■jQuery().scrollTop()/scrollLeft() メソッドの解読
5901:// Create scrollLeft and scrollTop methods
   // 'Left' と 'Top' を対象として巡回走査
5902:jQuery.each( ['Left', 'Top'], function(i, name) {
5903: var method = 'scroll' + name; // 変数 method に 'scrollTop'、'scrollLeft'を順に代入
5904: // jQuery.prototype オブジェクトに scrollTop と scrollLeft メソッドを追加する
5905: jQuery.fn[ method ] = function(val) {
5906:  var elem = this[0], win; // ローカル変数定義
5907:  // jQuery インスタンスに登録された HTML 要素がなければ何もしないで終わる
5908:  if ( !elem ) {
5909:	  return null;
5910:  }
5911:
5912:  if ( val !== undefined ) { // <ケース1> 何らかの val が与えられている場合
5913:   // Set the scroll offset スクロール値をセットする
      // 'scrollTop' と 'scrollLeft'を巡回処理する。なお、この行の this は
      // elem をプロパティとして持つ jQuery インスタンスを参照する。
5914:   return this.each(function() {
5915:    win = getWindow( this ); // 関数起動
5916:
       // <ケース1-1> 登録要素が window ならば
5917:    if ( win ) {
5918:     win.scrollTo( // window.scrollTo メソッドを起動する
         /*  win.scrollTo(val,jQuery(win).scrollTop())、
          * 又は win.scrollTo(jQuery(win).scrollLeft(),val)
          * を実行する。
          */
5919:      !i ? val : jQuery(win).scrollLeft(),
5920:       i ? val : jQuery(win).scrollTop()
5921:     }):
5922:
5923:    } else { // 登録要素が登録要素が window ではない場合
5924:     this[mehod] = val; // 対象要素内でスクロールする。
5925:    }
5926:   });
5927:  } else { // <ケース2> val が未定義の場合
5928:   win = getWindow( elem );
5929:
5930:   // Return the scroll offset
      /* <ケース2-1> 登録要素が window の場合
       * win に pageXOffset プロパティが存在する場合には、
       * i が 1 ならば win.pageYoffset を、i が 0 ならば win.pageXoffset を返す。
       */
5931:   return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] :
        // jQuery.boxModel が true ならば document.documentElement[ method ] 
        // プロパティ値を取得する。(これは IE の標準モードの場合に該当する)
5932:     jQuery.boxModel && document.documentElement[ method ] ||
        // さもなければ document.body[ method ] プロパティ値を取得する。
        //(これは IE の互換モードの場合に該当する)
5933:     win.document.body[ method ] :
       // <ケース2-2> 登録要素が window でないならば、
       // 登録要素のスクロール値を取得して返す。
5934:    elem[ method ];
5835:  }
5836: };
5837:});
5938:
5939:function getWindow( elem ) { // 関数定義
     // elem に scrooTo メソッドが適用でき、かつ elem に document がある場合
     // つまり、elem が window の場合
5940:  return ("scrollTo" in elem && elem.document) ?
5941:    elem : // elem を返す。
5942:    elem.nodeType === 9 ? // そうでない場合には elem が html 要素ならば
         // elem の defaulView プロパティ値、又は elemの parentWindow プロパティ値を返す。
5943:      elem.defaultView || elem.parentWindow :
5944:      false; // elem が html要素でなければ false を返す。
5945:}

 

■ コメントの投稿 ■

管理者にだけ表示を許可する

●トラックバック●

■トラックバックURLはこちら■
http://hkom.blog1.fc2.com/tb.php/752-cc127b80

●参照元一覧●

<provided Fc2>
<provided i2i>

▲ToTop

 90%近いシェアを握っているインターネットエクスプローラの描画エンジンを利用したタブbrowser。沢山のタブbrowserがあるが、多機能、カスタマイズフリー、スクリプト利用等で一日の長がある。Gekkoエンジンへの対応も行われ、IEからの自立独立の方向に向かっている。2005年7月にはIE7が登場する見通しの中で、今後の発展が望まれる。

 多様なCSS作成支援機能を備えた、タグ入力式 HTML&CSS作成支援エディタ。スキンデザインもすっきりしている。テキストエディター上で作成するよりも確実で安全にタグ打ちが出来る。
文字コードを選べないのが欠点。

 StyleNote同様のタグ入力式 HTML&CSS 作成支援エディタ。長年使用してきたが現在StyleNoteに乗り換えつつある。

 クリップボード履歴情報を活用する為のソフト。画像まで履歴を取ってくれるのが嬉しい。このソフトを使わない日は絶対ない程に重宝し、愛用している。

 起動中のウィンドウの「コピーできない」説明文などの文字列を取得し、コピー可能な文字データにするツール。何かと便利。

 ストリーミングデータを保存することが出来るソフト。動画利用には不可欠なソフトだ。

 無料ながらレイヤー機能を有し、スクリプトによる拡張も可能な、sleipnir作者が提供している優れもの画像編集ソフト。

 画面キャプチャソフトと言えばこれに勝るものなし、ではないだろうか? 様々な取得方法を有しており、ブログ作成にもHomepage作成に不可欠だ。Jtrimと並んでWoodyBellsの作品。

 複数ファイルの同時編集は出来ないが、透過pngも作れる画像編集ソフト。
(以下当該サイトから抜粋)初心者にも簡単に操作が出来るフォトレタッチソフトです。多くの加工機能で画像に様々な効果を与えることができます。非常に軽快に動作するため、ストレスなく操作できます。

 Animation Gifファイルを作れる無料ソフト。

 キャプチャソフト。画面内にサイト全体が表示しきれない場合でも、これを使えば全体をキャプチャすることが出来る。

 画像処理。画像のフォーマット変換のみならず、色数やサイズ、圧縮率の変更まで一括処理できてしまう『BatchGOO!』は、大量の画像をまとめて処理したいときに大変便利なソフト。BMP, TIFF, JPEG, PCX, PNG の相互変換をはじめ、色数・サイズ・解像度の統一、JPEG圧縮率の調節など、ホームページ用の画像や携帯電話用の壁紙を揃えるのに抜群の相性を見せる。(Vectorの当該ソフト紹介頁より抜粋引用)

 名前から直ぐに想像が付くように画像のサイズを測るためのソフトだ。Homepage作成には欠かせない。2カラム、3カラムのレイアウトを行う場合に大変重宝する。

 ランチャーソフトは沢山あるが、中でもこれが一押しだ。2年以上使ってきたがその操作性には毎日満足している。これを使い始めてからデスクトップには一切のアイコンを表示することをやめてしまった。

 AdobeReader7によって、起動時間が長すぎるという長年のユーザーの不満はある程度解消した。そのためこの高速化ソフトは存在価値が低下してしまったかもしれない。AdobeReader6迄はこのソフトによる起動高速化で恩恵を受けてきた。

 IE専用が難点だが、様々なサイト内でIDやパスワードを入力するのに重宝するソフト。コンテキストメニューから簡単に起動できるのがGood! sleipnir等のIEの描画エンジンを利用しているブラウザでも使える。

 利用しているパソコンの諸元値を取得するには、このソフトがベストだ。インストール済みソフトの一覧が取得できるのも嬉しい。

 WMPは機能が豊富なだけ重い。RealPlayerも同様だ。そこでMedia Player Classicを使いたい。動作が軽快なだけではなく、対応しているファイル形式もすこぶる多く、これひとつで、wmvもrmも表示できてしまうのだから凄い! 数多あるMedia Playerの王様と言えるだろう。

 自宅でPCを起動しているときには必ず起動しているメディアプレーヤー。何かと過剰なWinampよりも、起動も速くスキンはシンプルだ。

 DivX, Xvid, Mov, Vob, Mpeg, Mpeg4, avi, wmv, dv, などの動画をDVD-Video形式に変換できるフリーソフト。クリックするとDVD関連ソフト紹介サイト=「DVDなToolたち」なるHomepageが開きます。

----------
201001241906
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。