Ajaxで今よみがえる(^^;;-->[クロスブラウザ技術 ]DHTMLサンプル集
-- リスト --
【カテゴリー】 ActionScript ( 6 ) AIR ( 4 ) AjaSQL ( 10 ) Ajax ( 675 ) Arax ( 1 ) canvas ( 15 ) CSS ( 24 ) ( 9 ) DLNA ( 1 ) Dojo ( 25 ) DOM ( 51 ) ES4 ( 4 ) Ext JS ( 5 ) 反重力物質 ( 1 ) ffAdd-on ( 1 ) Flash ( 48 ) Flash Remoting ( 11 ) FTP ( 2 ) GAF ( 9 ) Google Maps ( 124 ) Google ガジェット ( 1 ) GPS ( 44 ) HTML ( 11 ) HTTPヘッダサンプル ( 11 ) IME ( 2 ) Internet ( 2 ) iPhone ( 50 ) IPv6 ( 1 ) 漫画 ( 4 ) Java ( 49 ) JavaScript ( 344 ) jKamo ( 8 ) jQchart ( 4 ) jQuery ( 207 ) jquery-ref ( 1 ) jsGadget ( 19 ) jslb_ ( 3 ) jslb_ajax ( 9 ) JSON ( 49 ) JSR223 ( 7 ) kjscmd ( 1 ) KNOPPIX ( 1 ) Linux ( 18 ) Mac ( 9 ) Memo ( 3 ) Microformats ( 2 ) Mini AJAX ( 2 ) MochiKit ( 2 ) mootools ( 10 ) Movable Type ( 58 ) MySQL ( 10 ) NewGameWeb ( 2 ) Nucleus ( 8 ) OpenAJAX ( 3 ) OpenDocument ( 1 ) OS ( 10 ) P2P ( 2 ) Perl ( 8 ) PHP ( 38 ) PostGIS ( 1 ) PostgreSQL ( 4 ) prototype.js ( 28 ) ROBOT ( 1 ) RSSリーダー ( 15 ) Ruby on Rails ( 7 ) SPDY ( 1 ) Spry ( 6 ) SQLite ( 17 ) SQLiteWorker ( 2 ) ssh ( 1 ) SSI ( 2 ) SVG ( 23 ) TRON ( 1 ) Ubiquity ( 7 ) Video ( 1 ) VML ( 1 ) Web Slice ( 1 ) Web Sockets ( 25 ) Webサービス ( 107 ) widget ( 6 ) Wii ( 1 ) Wiki ( 1 ) Win ( 6 ) WSH ( 1 ) X01HT ( 30 ) XML ( 32 ) XOOPS ( 1 ) XQuery ( 2 ) XUL ( 4 ) Yahoo! UI ( 74 ) 日付入力用カレンダー ( 1 ) 『Ajax実践テクニック』 ( 1 ) 『入門 Ajax』 ( 42 ) WinTips ( 2 ) こりゃすごい ( 7 ) チューニング ( 30 ) ダイナミックロード関数 ( 7 ) リファレンス ( 20 ) ライブラリ ( 210 ) レーダー雨量表示 ( 1 ) ハード ( 35 ) ペンギン ( 2 ) ブラウザ ( 109 ) ブログでBBS ( 1 ) アクセスグラフ ( 3 ) イベント ( 2 ) カレンダーによる日付入力スクリプト ( 4 ) クロスブラウザ ( 14 ) クロスブラウザ関数 ( 8 ) スポーツ ( 1 ) スマートフォン ( 8 ) セキュリティ ( 155 ) ソフトイーサ ( 1 ) マッシュアップ ( 23 ) 暗号 ( 4 ) 映画 ( 57 ) 河川の水位グラフ ( 3 ) 回線 ( 2 ) 開発ツール ( 38 ) 牛久大仏 ( 19 ) 携帯 ( 150 ) 言語 ( 19 ) 故障 ( 9 ) 高橋家の謎 ( 3 ) 広告とか ( 1 ) 洪水警報システム ( 2 ) 今日のひと言 ( 10 ) 仕様 ( 113 ) 雑談 ( 357 ) 実装 ( 2 ) 書籍 ( 20 ) 親子ウインドウ有無の確認関数 ( 3 ) 新海誠 ( 3 )
Web Sockets Domo

* サーバー側は、小松氏のこれをbloga.jp:80へ置いてあります。
* クライアント側はWS処理をjQueryプラグイン化してみました。これです。
* ちなみに、このDemoサンプルは、下記5行でローカルでも別ドメインでもどこにでも設置出来ます。
<script src="http://bloga.jp/ws/jq/js/jquery-1.3.2.min.js" type="text/javascript"></script> <script src="http://bloga.jp/ws/jq/js/jquery.ws-0.3-noenc-pre.js" type="text/javascript" charset="utf-8"></script> <script src="http://bloga.jp/ws/jq/conn/wschatdemo0.3.js" type="text/javascript"></script> <script>/*サポートしてない時のalertメッセージを抑止*/$.ws.wsSetup({nonosupportmsg:true});</script> <div id="wsdemos"></div>

【info】いつもいろいろなテストなどをページ内のあちこちでやっているので、重かったり、壊れていたりするf^^;ことも多いです。実験用ですので、カオス(混沌)をあえて意図したりもしますので、標準やValidとは無縁だったりしますが、何卒、ご了承ください ( _ _ b

【info】 最近はTwitterでぶつぶつ言ってることが多いです。
>http://twitter.com/toshirot

【info】 Chrome Extension [WebSocket Chat] もちろんChrome専用です
https://chrome.google.com/extensions/detail/fnoegeafibddabfhmpmhniphlcojkjli

2008年04月29日

【ライブラリ】YUIとjQuery

Ajax , JavaScript , Yahoo! UI , jQuery , ライブラリ ブックマークに追加する ブックマーク-- Hatena  / Livedoor track feed


YUIもjQueryもお気に入りのライブラリなんですが、YUIのブログでaddClass的な処理のチュートリアルがあって、「ああ、最近はこうだよね」と、思いつつも、ふと、試しにjQueryに書き換えてみたら、やっぱりjQueryの楽チンさが際立ちました。

ちなみにこのjQueryコードで書き換えるのに要した時間は30秒です(^^;。CSSやHTMLはまったく同じでコード部分だけが違います。<むしろ、ブログに書くのに時間がかかりますf^^;;

Introduction to Unobtrusive JavaScript, DOM Scripting, and the Yahoo! User Interface (YUI) Library
http://2tbsp.com/node/91
Unobtrusive Rollovers Using YUI
http://yuiblog.com/blog/2008/04/28/unobtrusive-rollovers-using-yui/

このYUIサンプル
http://jsgt.org/lib/jquery/test/yui-rollover.html
YUIソース
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Menu with YUI Goodness</title>
  
  <link rel="stylesheet" 
        href="yui-rollover_files/yui-rollover.css" 
        type="text/css" media="screen">
  <script type="text/javascript" 
          src="yui-rollover_files/yahoo-dom-event.js"></script>
  <script type="text/javascript">

    // Create a menu object, put everything we need into it
    var menu = {
      // Initialize the menu rollover
      init : function() {
        // Get the btn elements
        btns = YAHOO.util.Dom.getElementsByClassName('btn', 'div', 'menu');
        // Assign event listeners to the btns
        for (var i=0; i<btns.length; i++) {
          YAHOO.util.Event.addListener(btns[i], 'mouseover', menu.roll, i);
          YAHOO.util.Event.addListener(btns[i], 'mouseout', menu.roll);
        }
      },
      // First, turn 'em all off, then turn one on
      roll : function(e, i) {
        YAHOO.util.Dom.removeClass(btns, 'btn-over');
        YAHOO.util.Dom.addClass(btns[i], 'btn-over');
      }
    };
    // Initialize the menu
    YAHOO.util.Event.on(window, 'load', menu.init);

  </script></head><body>
  <div id="menu">
    <div class="btn">
      <a href="#">Link 1</a>
      <p>Description for link 1</p>
    </div>
    <div class="btn">
      <a href="#">Link 2</a>
      <p>Description for link 2</p>
    </div>
    <div class="btn">
      <a href="#">Link 3</a>
      <p>Description for link 3</p>
    </div>
  </div>
</body>
</html>

試しに作ったjQueryサンプル
http://jsgt.org/lib/jquery/test/yui-rollover.html
jQueryソース
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Menu with jQuery</title>

  <link rel="stylesheet" 
        href="jquery-rollover_files/jquery-rollover.css" 
        type="text/css" media="screen">
  <script type="text/javascript" 
             src="jquery-rollover_files/jquery-1.2.3.min.js"></script>
  <script type="text/javascript">
  
    jQuery(function($) {
        btns = $('.btn');
        btns.hover(
          function(){ $(this).addClass('btn-over')},
          function(){ $(this).removeClass('btn-over')}
        )
      })
      
  </script></head><body>
  <div id="menu">
    <div class="btn">
      <a href="#">Link 1</a>
      <p>Description for link 1</p>
    </div>
    <div class="btn">
      <a href="#">Link 2</a>
      <p>Description for link 2</p>
    </div>
    <div class="btn">
      <a href="#">Link 3</a>
      <p>Description for link 3</p>
    </div>
  </div>
</body>
</html>

もちろん、こんなhoverはCSSでやれば良い(笑)と思うんですけれど、addClass/removeClassという考え方は、いろんな場面でスマートに使える良い手法で、このサンプルはその基本手法がわかりやすくて良いかなと。

たとえば、ドラッグ中のフラグや、アニメーション中のフラグをclass名に追記したり削除しながらコントロールするという使い方は、実際にjQuery UIなどでもよく使われていますが、構造が把握しやすく便利です。


  

All About/JavaScript

All About のJavaScript関連記事を書いています。参考にしていただければ幸いです。