タグ

ブックマーク / cyokodog.hatenadiary.org (23)

  • スクロールイベントの開始 / 終了 / 方向を判定する jQuery プラグインを書いてみた - Cyokodog :: Diary

    バージョンアップしました。詳細は以下記事をご覧ください。[Ex Scroll] スクロールイベントの開始/終了、方向を判別できる jQuery プラグイン - Cyokodog 需要なさそうですが、備忘録ということで。 只今、以前作成した exFixed.js という jQuery プラグインの機能拡張を行っており、その中で、 スクロールイベントの開始、終了時にのみ処理を行う その際、スクロールイベントのスクロール方向に応じて処理を変える という実装が必要になりました。 jQuery におけるスクロールイベントの割当は下記のような記述になりますが、このままではイベントの開始,終了,スクロール方向は判別できません。 $( element ).scroll( function( evt ){ //スクロールイベント内処理 }); 以下の実装で判別できないか考えてみました。 スクロール方向の判別

    スクロールイベントの開始 / 終了 / 方向を判定する jQuery プラグインを書いてみた - Cyokodog :: Diary
  • select 要素の change イベントを補正する jQuery exChange Select - Cyokodog :: Diary

    先日、select 要素の値を矢印キーで変更してたら jQuery の change イベントが起動しないという事象に遭遇しました。例のごとくまた IE6 固有の問題かと思ってたのですが、念のため調べてみると Opera 以外はほとんどのブラウザで再現してしまいました。 という訳で select 要素で正しく change イベントを起動させる jQuery プラグインを作ってみました。 矢印キー change イベント対応ブラウザの調査 select 要素の値を矢印キーで変更した場合に、change イベントが正しく起動されるブラウザを、jQuery のバージョン別に調べてみました。結果は以下の通り。 jQuery 1.3.2 jQuery 1.4.2 jQuery 1.4.3rc2 IE6 ○ × × IE7 ○ × × IE8 ○ × × Firefox 3.6.10 × × × S

    select 要素の change イベントを補正する jQuery exChange Select - Cyokodog :: Diary
  • 要素のリサイズイベントを検出する jQuery exResize - Cyokodog :: Diary

    ブラウザのウィンドウサイズが変更された時に、何らかの処理を行いたい場合、jQuery では resize() メソッドで window オブジェクトに対し処理を割り当てます。 $( window ).resize(function(){ /* 行ないたい処理 */ }); 一方、div 要素などの普通の HTML 要素に対し、resize() メソッドで割り当てた処理は起動されることはありません。resize() メソッドではウィンドウのサイズ変更しか検出することができないようです。 今回作成した jQuery プラグイン exResize を使用すると、div 要素等の普通の HTML 要素においても、サイズ変更を検出し、割り当てた処理を実行させることができるようになります。 機能概要 以下の基機能があります。 div 要素等の普通の HTML 要素に対するリサイズイベントの割り当て

    要素のリサイズイベントを検出する jQuery exResize - Cyokodog :: Diary
  • jQuery exFixed を動的な位置移動やリサイズ処理に対応させてみた - Cyokodog :: Diary

    更新履歴 2010-11-14 exFixed Ver 1.3.0 ベースの記述に変更しました。 2009-10-16 ページのサンプルソースを jQuery.exFixed.js の Ver 1.2.0 に対応した記述に差し替えました。詳細は以下をご覧下さい。 jQuery.exFixed.js を機能拡張しました - Cyokodog::Diary 一ヶ月以上間のあいた久しぶりの更新ですが、今回もしつこく IE6 の position : fixed ネタです。 最近では HTML でリファレンスマニュアルなどを作る機会もあり、position : fixed で目次一覧を固定表示させたりしてます。そんな時 exFixed の出番となるわけですが、固定表示させた目次エリアに対し、さらにリサイズや位置調整機能などを付加しようとするといろいろと問題が生じます。 今回はそれらの問題を解決し

    jQuery exFixed を動的な位置移動やリサイズ処理に対応させてみた - Cyokodog :: Diary
  • IE6 position:fixed の諸問題を解決する jQuery.exFixed.js - Cyokodog :: Diary

    最近の更新履歴 2011-12-07 Ver 1.3.2 リリース jQuery 1.7.1に対応しました。 2010-12-27 Ver 1.3.1 リリース fixed 要素がブラウザ表示エリアから隠れ1度非表示状態になると、ウィンドウをリサイズし表示エリア内におさめても非表示状態が続いてしまう不具合を修正しました。 2010-11-14 Ver 1.3.0 リリースしました。exAPI ベースの実装に変更しました。サイズに auto を指定できるように変更しました。 2009-12-08 Ver 1.2.2 リリースしました。IE6 にて fixed 対象要素を非表示にしても表示されてしまう不具合を修正しました。Ver 1.2.1 でサイズを明示せずプラグインを実行すると fixed されない不具合を修正しました。 more jQuery exFixed を使用すると、IE6 で p

    IE6 position:fixed の諸問題を解決する jQuery.exFixed.js - Cyokodog :: Diary
  • HTML をプレゼン形式に表示する jQuery プラグインを作ってみた - Cyokodog :: Diary

    先日「jQuery の紹介」と題して、職場(情報システム部門)向けのプレゼン資料を作成する機会がありました。うちの職場では「新技術紹介」という名目で、隔週でプレゼンを行うという決まりがありやむなく作ったものです。(資料の内容自体は、大量にブクマした記事から jQuery の紹介文の部分だけをコピペして作った手抜き資料ですが・・・) はじめはパワーポインタで作ってた資料ですが、jQuery の紹介で jQuery のプレゼンツール使わないのもどうかなと思いプラグインを探しはじめましたが、例のごとくなかなか IE6 にもやさしいやつを見つけられずに・・・(会社の標準ブラウザは未だに IE6 なんです) そんな訳で、結局自前で作ることになった jQuery ベースのプレゼンツールを紹介致します。 機能概要 html モードとプレゼンモード html モード(普通の html ページの表示)とプレ

    HTML をプレゼン形式に表示する jQuery プラグインを作ってみた - Cyokodog :: Diary
  • In-Place-Editor (その場で編集する UI) の jQuery プラグインを書いてみた - Cyokodog :: Diary

    更新履歴 2011-07-05 Ver 0.1.5.1 リスト編集モードで値未入力時のラベル表示不具合等を修正しました 2011-06-20 Ver 0.1.5 表示テキストの整形処理を記述できる replaceLabel パラメータを追加しました。 2011-04-29 Ver 0.1.4.1 編集値の変換処理の不具合を修正しました 2011-04-21 Ver 0.1.4 リスト編集モード等の機能追加をしました jQuery exInPlace Editor にリスト編集モード等の機能追加をしました - Cyokodog::Diary 2010-07-17 Ver 0.1.3 editorType パラメータを textarea にし元テキストに br もしくは p が含まれた場合、textarea 内で改行に置換されない不具合を修正しました 2010-07-16 Ver 0.1.2

    In-Place-Editor (その場で編集する UI) の jQuery プラグインを書いてみた - Cyokodog :: Diary
  • iframe を iframe ぽく見せない jQuery プラグインを作ってみた - Cyokodog :: Diary

    更新履歴 2011-09-29 Ver 0.1.4 に更新 jQuery 1.6.2 に対応しました 2010-06-10 Ver 0.1.3 に更新 getTargets, getTarget メソッドを追加しました 2010-06-04 Ver 0.1.2 に更新 IE6 で実行時にタイミングにより表示されてたエラー警告を、表示されないように修正しました。 2010-06-01 Ver 0.1.1 に更新 IE で正常に動作しない不具合を修正しました。 社内アプリも Ajax 的な UI なものが増えるにつれて、1画面にたくさんの機能を詰め込みたいという要望を受ける事が多くなりました。素直に作るとプログラムも肥大化し保守も大変になるので、機能単位に画面を分けて作成し、それぞれの画面を iframe で1つの画面に読み込むといった方法で対応したりしてます(iGoogle 的な感じ)。 そ

    iframe を iframe ぽく見せない jQuery プラグインを作ってみた - Cyokodog :: Diary
    Layzie
    Layzie 2010/05/31
    すばらしいなあ
  • GAE/J で日本語記事リンク付きの jQuery Plugin まとめサイトを作ってみた - Cyokodog :: Diary

    前々から GAE/J で何か作ってみたいと思ってたのですが、あまりネタも思いつかなかったので、とりあえず jQuery Plugin のまとめサイトを作ってみました。 jQuery Plugins - jQuery.Doc 機能紹介 見たまんまなので、特に説明は要らないかと思いますが一応.. 1)カテゴリ プラグインのカテゴリのリンクです。リンクのクリックで対象のプラグインのリストが名前順で表示されます。 New Plugin をクリックした時のみ データの登録日付、名前順で表示されます。 2)プラグイン名 プラグインのプロジェクトサイトにリンクしてます。 3)日の国旗 和製プラグインの場合に日国旗のアイコンが表示されます。 4)製作者名 twitter のアカウント、もしくは、はてな ID が確認できたプラグインのみ製作者名が表示されます。 5)非対応ブラウザ 非対応ブラウザを赤字の

    GAE/J で日本語記事リンク付きの jQuery Plugin まとめサイトを作ってみた - Cyokodog :: Diary
  • ActiveX 経由で FTP する jQuery プラグイン を書いてみた - Cyokodog :: Diary

    更新履歴 2011-06-20 Ver 0.1.1 パスにブランクが含まれてると、FTP に失敗する不具合を修正しました。 Gumblar がはやってるさなかに不謹慎な気もしますが、仕事でちょっと必要だったもので... ActiveX ということで IE でしか使えませんが IE オンリーな会社のイントラアプリや HTA アプリ向けになら使ってもいいかなと...(ダメ?) ちなみに HTA についてはこちらが詳しいです。 HTAでフォームを利用したサンプルを作る - IT PRO JavaScriptでかんたんHTAアプリに挑戦 - てっく煮ブログ 使い方 プラグインの読み込み jQuery と jQuery.exActiveXFTP.js を読み込みます。 <script type="text/javascript" src="jquery.js"></script> <script t

    ActiveX 経由で FTP する jQuery プラグイン を書いてみた - Cyokodog :: Diary
  • CSS1 のみで質感のあるボタンを表現してみる - Cyokodog :: Diary

    CSS3 を駆使すると、とてもリッチなボタンパーツが表現できるようです。 CSSグラデーションのちょっとしたテクニック #2 - hail2u.net CSSの実装状況で変わるボックスのデザイン方法 - 3.5ping.org 悲しいことに勤務先の PC の標準ブラウザは IE6。近いうちに IE8 へのアップグレードを予定してますが、残念ながら IE8 では CSS2.1 までしか対応してないようです。 上記のリンク先のサンプルには遠く及びませんが、先日、PC の中身を整理してたら IE6 で質感のあるボタンを作ろうと試行錯誤してた頃の html ファイルが見つかりました。会社で CSS3 が使えるようになるのも当分先になりそうですので、備忘録としてこちらに残しておきたいと思います。 li 要素と a 要素でボタンを表現 li と a 要素に CSS を当てることで、以下のようなボタンを

    CSS1 のみで質感のあるボタンを表現してみる - Cyokodog :: Diary
  • jQuery の位置・サイズ関連メソッドまとめ - Cyokodog :: Diary

    ばらけてきたのでこちらにまとめます。 索引 位置の設定 css(name,value) 位置の取得 css(name) offset() position() scrollTop() / scrollLeft() event.pageY / event.pageX サイズの設定 css(name,value) / height(value) / width(value) サイズの取得 css(name) / height() / width() attr(clientHeight / offsetHeight / scrollHeight) outerHeight() / innerHeight() コンテナ要素の取得 offsetParent() 解説 位置の設定 css(name,value) 対象要素を指定した位置に配置できます。単位を省略した場合はピクセル単位となります。 $('#

    jQuery の位置・サイズ関連メソッドまとめ - Cyokodog :: Diary
  • 機種依存文字や半角カナを変換する jQuery プラグインを書いてみた - Cyokodog :: Diary

    以下のような丸囲い数字や半角カナを、他の文字に変換する jQuery プラグインを書いてみました。 フォーム要素などでこれらの値が入力されるケースが良くあるのですが、環境によっては文字化けやトラブルの要因になるので、登録処理を行う前に代替の文字に強制変換するといった使い方をしています。 使い方 jquery.js 、jquery.exreplace.js を読み込み、変換対象の要素に対し exReplace() メソッドを実行すると、表のとおりの変換処理を行います。パラメータを指定することで、変換対象の文字を限定することができます。 Demo 保存ボタンを押した時点で変換したい場合は、保存ボタンの click イベント内で exReplace() メソッドを実行します。 jQuery(function($){ $('#save_btn').click(function(){ $('inpu

    機種依存文字や半角カナを変換する jQuery プラグインを書いてみた - Cyokodog :: Diary
  • jQuery ライクなプラグイン API の定義方法を考えてみる - Cyokodog :: Diary

    jQuery UI の $.widget を使用しプラグイン定義を行うと、jQuery らしい一貫性のあるプラグイン API が使えるようになります(関連記事)但し「ui.core.js(13.6KB)が必須」「API メソッド実行の記述が冗長になる」といった条件がついてしまいます。 今回はこれらの問題を解決しつつ、jQuery UI のような柔軟性の高いプラグイン API を定義する方法について考えてみました。 jQuery UI と jQuery TOOLS のプラグイン API jQuery UI では、プラグイン API のメソッドを実行するには、プラグインメソッドの引数に API メソッド名を指定するかたちで実行します。そのためメソッド実行の記述が少々冗長になります。 //jQuery オブジェクトが返えされる var dialogs = $('#sample1,#sample2

    jQuery ライクなプラグイン API の定義方法を考えてみる - Cyokodog :: Diary
  • jQuery UI の プラグイン定義関数 $.widget を使ってみる - Cyokodog :: Diary

    jQuery UI の tabs や accordion といったウィジェット系プラグインでは、専用のプラグイン定義関数 $.widget でプラグイン定義することで、一環性のあるプラグイン API を利用者に提供しています。 今回は、$.widget を使ったプラグインの定義方法について調べてみました。 ui.core.js の入手 $.widget は jQuery UIui.core.js というソースファイル内に定義されてます。 公式サイト(http://jqueryui.com/download)よりプラグイン一式をダウンロードし、zip ファイルを解凍すると、以下パスに ui.core.js があるので、これを読み込み $.widget を使用できるようにします。 jquery-ui-1.7.2.custom/development-bundle/ui/ui.core.j

    jQuery UI の プラグイン定義関数 $.widget を使ってみる - Cyokodog :: Diary
  • テーブルのヘッダとフッタを固定する簡易プラグイン - Cyokodog :: Diary

    更新履歴 2010-06-02 jQuery.exTable.js を Ver 0.1.2 に更新 jQuery 1.3 以上のバージョンで正常動作しない不具合を修正しました。 サンプルを含む zip ファイルでダウンロードできるようにしました。 2010-01-21 jQuery.exTable.js を Ver 0.1.1 に更新 セルの内包要素の膨張、table 要素の margin 設定等によるレイアウト崩れ抑止処理を追加しました ヘッダ・ボディ・フッタ内のテーブル要素を取得するゲッターメソッドを追加しました 記事中のソースを修正しました だいぶ前に書いた「tableのヘッダを固定させる簡易scriptをサクっと作ってみた」というエントリに、「サンプルソースを参考にフッタも固定しようとしたけどうまくいかない」というコメントを先日頂きました。今にして見ると、前回、前々回のエントリで書

    テーブルのヘッダとフッタを固定する簡易プラグイン - Cyokodog :: Diary
  • プラグイン API の定義パターンについて調べてみた - Cyokodog :: Diary

    jQuery の標準 API が DOM 操作等のコア機能に特化しているのに対し、プラグインとして提供される機能には、ウィジェット生成処理をはじめとした拡張機能的なものが多々あります。 また、このようなプラグインの中には内部的に生成した要素やメソッドに対し、外部から参照、実行が可能な API を用意し、プラグインに柔軟性や拡張性を持たせてるものもあります。 前回のエントリ(jQuery プラグインの定義パターンについて調べてみた)同様、公開されてるプラグインのソースを参照し、どのようなプラグイン API の定義パターンがあるか調べてみました。 ColorBox のプラグイン API を実際に使ってみる 定義パターンを見る前に、画像ギャラリー系プラグイン ColorBox の提供するプラグイン API を使用し、どんなことができるのか試してみます。 ColorBox は、画像ファイルにリンク

    プラグイン API の定義パターンについて調べてみた - Cyokodog :: Diary
  • jQuery プラグインの定義パターンについて調べてみた - Cyokodog :: Diary

    jQuery のプラグインの定義手法については、いろいろな記述の仕方が考えられるかと思います。今回、実際に公開されているソースを参照して、どのような定義パターンがあるのかを調べてみました。 jQuery 標準 API の定義構造のおさらい まず、jQuery が標準で提供している各種 API が、どうのような構造で定義されてるかおさらいしてみます。 $ や jQuery はグローバル変数、つまり window オブジェクトのプロパティ名であり、その実体は関数オブジェクトです。 window.$ = window.jQuery = function(){ ... } jQuery が提供する API には 関数 API と メソッド API があり、関数 API は jQuery 関数オブジェクト(以降 jQuery セレクタと記述します)が持つ、関数オブジェクトのことを指します。 jQue

    jQuery プラグインの定義パターンについて調べてみた - Cyokodog :: Diary
  • (その場で編集するUI) の実装方法を考えてみた - Cyokodog :: Diary

    画面上の変更したいデータや文章をクリックすると、画面遷移をせずその部分のみが編集可能状態になるユーザインターフェースのことを Edit-In-Place あるいは In-Place-Editor と呼ぶそうです。 jQueryでEdit-In-Place(その場編集)を実現するためのプラグイン&チュートリアルいろいろ - IDEA*IDEA inplace edit で始める DOM スクリプティング - 脱エンタープライズ志向 今回は jQuery による In-Place-Editor の実装方法について考えてみます。 In-Place-Editor の効果的な使い方 登録文書を承認ワークフローでまわすようなシステムの場合、同一文書に対し複数ユーザが修正や加筆をするというケースがよくあります。その際起こる問題として「データ編集中に他者に更新を先越され、登録処理で排他エラーになってしまっ

    (その場で編集するUI) の実装方法を考えてみた - Cyokodog :: Diary
  • jQuery.exFixed.js を機能拡張しました - Cyokodog :: Diary

    以前、exFixed という jQuery プラグインを作成しました。IE6 で position:fixed を実現するプラグインで、特徴として IE6 でもガタつかない position:fixed が可能 クロスブラウザで fixed 要素に対し、位置移動、リサイズ等の動的な変更が可能(素のanimate メソッド等も併用可) といった事が挙げられます。 IE6 position:fixed の諸問題を解決する jQuery.exFixed.js IE6 position:fixed / exFixed.js を動的な位置移動やリサイズ処理に対応させてみた 今回、このプラグインをご利用下さった方々からのフィードバックを元に、機能拡張と不具合修正を行いました。 機能拡張 これまでは IE6 でもモダンブラウザの position:fixed と同レベルの扱いが出来ることを目指してました

    jQuery.exFixed.js を機能拡張しました - Cyokodog :: Diary