2011/9/28

jQueryで非表示かつ高さ指定のない要素の高さを取得する、なんかトリッキーな方法

昨日から2日連続jQuery漬けでして、お陰様で基本的な動きは大体できてきたんですが、ひとつ、jQueryで親要素の高さ指定をするんだけれども、その算出に、行数変わる子要素の高さを高さ指定できないからどう処理するか困ってたんです。当然、WordPressでの更新ベースなので。

html – jQuery: Get height of hidden element in jQuery 1.4.2 – Stack Overflow

$("#myDiv").css({'position':'absolute','visibility':'hidden','display':'block'});
optionHeight = $("#myDiv").height();
$("#myDiv").css({'position':'static','visibility':'visible','display':'none'});[/php]

うわあ、トリッキー、と思いつつ、やってみたら、高さが実寸と合わない。。。でよくよく考えたら、absoluteにしているわけだから、折り返し位置が変わってきちゃうんですね。というわけで上のコードであれば:

$("#myDiv").css({'position':'absolute','visibility':'hidden','display':'block'});
optionHeight = $("#myDiv").height();
$("#myDiv").css({'position':'static','visibility':'visible','display':'none','width':'表示域の横幅'});[/php]

みたいにしてやったら綺麗に高さ取れました!トリックにトリックを重ねた感じですが、まあこればかりはしゃあないですの。

jQuery、セレクターの使い方覚えるまでは試行錯誤の繰り返しでしたが、何とかモノになってきました(とは言え2日で200行くらい書いただけども)。まあただ、UI制御なんで、微調整が完了するにはこれからも山あり谷ありなんでしょうね。。。まあ覚えて、僕の仕事に120%損はしない話(というか初めてこういう分量あるjQuery書く仕事きたのは勉強には幸い)なので引き続き頑張ります。

ひとり仕事: フリーランスという働き方
(2012-10-5)
売り上げランキング: 14,705
100円
WordPressデザインレシピ集
狩野 祐東
技術評論社
売り上げランキング: 197,569
WordPress 高速化&スマート運用必携ガイド
こもりまさあき 岡本渉
エムディエヌコーポレーション
売り上げランキング: 435,263

加藤 康祐 / 企画・設計

1980年1月12日生まれ。フリーランス歴15年。プランナー、デザイナー。加藤康祐企画設計代表。学生時代にデザイン会社でWebデザインを経験。2005年よりフリーランスとしてキャリアスタート。これまでに個人から上場企業まで、100以上のクライアントとのプロジェクトを経験。主な仕事としてベンチャー企業でのサービスのUXデザイン、独法との防災メディアの編集・運営、社会的養護の子どもたちの自立を支援するNPOのサポート等。趣味はラグビーと料理。Keep the head up, Bind tight & Stay low.

加藤康祐企画設計

是非、フォローしてください!
Twitter / Instagram