
<li>テキストテキストテキストテキスト
<div><img src="・・・"></div></li>
のような形で、
$('li div').hide();
$('li div').click(function(){
if('li div'が閉じていたら){
$('li div').show("fast");
}
if('li div'が開いていたら){
$('li div').hide("fast");
}
}
としています。
テキスト自体は常に表示していて、クリックされたら画像を表示するようにしたいのですが、
hide,show自体は問題ないのですが、中の画像が、liの幅に対して短く、センタリングしている状態なのですが、hide→showの際は、liの左端から来て真ん中で止まるようなスライドするアニメーションをします。
show→hide の際は、真ん中から左に移動するような動きをします。
この、中の画像をスライドしないようにしたいのですが、どうすればいいのでしょうか。
showやhideにオプションもなさそうなのですが、なぜこのような動きをするのかよくわからず。
よろしくお願いします。
※toggleは使えない理由があります。
No.2ベストアンサー
- 回答日時:
show,hideの仕様です。
animateを使いましょう。
$('li div').animate({ height: 'show' }, "fast");
$('li div').animate({ height: 'hide' },"fast");
これで縦方向に表示・非表示されます。
お〜
ありがとうございます。
まさにやりたかったことでした。
http://jsbin.com/womatipawi/1/edit?html,css,js,o …
この方法は試して動かなかったので諦めてましたが、指定を間違っていたようです。
ありがとうございました。
No.1
- 回答日時:
よくわかってませんが・・・
>$('li div').click(function(){~~
となっているので、そもそも
>if('li div'が閉じていたら){~~
は動作しないと思いますが・・・
(閉じていたらクリックできないので)
現状がどのようにレイアウトしているのかわからないので、以下は全くの想像ですが・・・
例えばhide()の際の動作として、中の画像が移動せずに、全体が右・下からトリミングされてゆくような動作をお望みなのでしょうか?
想像では、レイアウトをdiv要素に相対的に行っているので、アニメーション中にレイアウトが変わるのではないかと思います。
jQueryのshow()、hide()では基本的に対象要素のwidth、height、opacityを変えることでアニメーションしていますので、それらの内容(値)が変化しても、レイアウトがお望みの状態に保たれるようにしておけば宜しいのではないかと想像します。
例えば、アニメーションするdivの内側に固定サイズのdivを設定しておいて、その中で相対的なレイアウトをするなどの方法にすればよいのかも知れません。
(どうしたいのかがよくわからないので、あくまでも想像です)
ありがとうございます。
試しに作ってみたらtoggleでも再現しました。
http://jsbin.com/noqeqikaya/1/
コードは
http://jsbin.com/noqeqikaya/1/edit?html,output
これはjQueryのデフォルトの動きであると言えると思いますので、ご指摘の通り、他の動きでごまかそうと思います。
あまり回答に関係ないところですが、
>となっているので、そもそも
>>if('li div'が閉じていたら){~~
>は動作しないと思いますが・・・
の箇所は、フラグみたいなものを用意しており、1だったら開く、0だったら閉じる、みたいなことを簡単に説明していました。
わかりづらくて申し訳ありませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- HTML・CSS FC2カートのテンプレートでの商品表示について 1 2023/03/02 18:05
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Jquery タブで、4つのliのうち...
-
jqueryのsortableで一部ソート...
-
gridstack.jsについて教えてく...
-
ネストされたチェックボックス...
-
チェックボックスに入っている...
-
同一ページ内で、任意の文字列...
-
別ページのインラインフレーム...
-
どの<li><a> が押されたか判別...
-
別フレームからの背景の変更
-
JQueryタブのアクティブ アン...
-
javascript テキストエリアを1...
-
Tumblrでjsが適用されない
-
innerHTMLでドロップダウンメニ...
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
JSPでの画像ファイル表示
-
c++std::string型をTCHARに変換...
-
画像の重なりの順序を代える方...
-
JavaScriptで変更した属性の元...
-
<img>タグの alt= の値をキャプ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jqueryのsortableで一部ソート...
-
タブ切り替えの初期表示について
-
クリックした<a>タグのみにClas...
-
【javascript で動的に a タグ...
-
JQueryタブのアクティブ アン...
-
jQueryのhide,showで中の要素が...
-
JS <a></a>タグ内のリンク先ア...
-
javascriptで教えてください。 ...
-
ネストされたチェックボックス...
-
div要素をランダムに表示させたい
-
jquery ドロップダウンメニュー...
-
同一ページ内で、任意の文字列...
-
onMouseoutの有効な範囲
-
macromediaのようなメニュー
-
mootoolsを使ったドロップダウ...
-
tableやul,liで表示されたリス...
-
jQueryのeqで最後からn番目以降...
-
javascript, getElementsByTagN...
-
jQuery タブメニューへのダイ...
-
【jQuery】遅延実行(タイムラ...
おすすめ情報