jQueryのslideUpエフェクトは、slideDownが要素を表示している間、要素をスライドして非表示にします。 slideUpを使って自分のdivを表示したい。誰も私を導くことができますか?おかげjQuery slide要素を表示して非表示にしないでください
答えて
$("div").click(function() {
$(this).hide("slide", { direction: "down" }, 1000);
});
このトグル効果は上下のみのためです。 0PX、 追加コール
$("#div).slideDown();
はslideUp・ツー・ショー効果で表示されます:jQueryのUIは、他のすべての方向
アップとダウンの切り替え方法 –
のためである私は、CSSスタイルの下でのdivを設定することができます...
をトリッキーな方法を見つけましたあなたは欲しい。
しかし、問題の#divがposition:absoluteに設定されている限り、問題の#divを相対的な位置に配置する必要がある場合は、絶対にしないでください。 – Strixy
slideUpとslideDownの反対を取得します。これら2つの関数をjQueryに追加します。
$.fn.riseUp = function() { $(this).show("slide", { direction: "down" }, 1000); }
$.fn.riseDown = function() { $(this).hide("slide", { direction: "down" }, 1000); }
これはjQueryUIライブラリを使用する必要があります。[link](https://developers.google.com/speed/libraries/devguide#jquery) – Yokocapolo
これは、@ jasonが以前に与えたのと同じ理由で、名前空間に – Strixy
これは本質的に同じ答えですが、これはショートカット形式ではありますが、一部ではより読みやすくなる可能性があります。 – jpillora
これは、もう少し複雑なだけslideUpShow()
か何かを言うよりもですが、あなたはまだそれを行うことができます。これは非常に単純な例であるため、あなたは訴える必要があるいくつかのエッジケースを見つけるかもしれません。
$("#show-animate-up").on("click", function() {
var div = $("div:not(:visible)");
var height = div.css({
display: "block"
}).height();
div.css({
overflow: "hidden",
marginTop: height,
height: 0
}).animate({
marginTop: 0,
height: height
}, 500, function() {
$(this).css({
display: "",
overflow: "",
height: "",
marginTop: ""
});
});
});
ここslideUp
/slideDown
方法、animate
を使用して、同じ効果、逆に行くanimate
を使用して修正したバージョンを示すフィドルです:animate
は内蔵のjQueryの関数であるので、あなたが、http://jsfiddle.net/sd7zsyhe/1/
をjQuery UIを含める必要はありません。
+1これはうまく動作し、あなたは素晴らしいjsfiddleの例があります。私はこれが正解として選ばれていない理由を知らない – krummens
OPがjQuery UIライブラリを使用したくない場合、これが答えになるはずです –
私は自分の答えをチェックしたので、本当に私はOPの質問に正しく答えなかった。だから私はそれを修正しようとしています。
まず、JQueryのslideUp()
メソッドは、要素を表示せずに非表示にすることを目的としています。これは基本的にslideDown()
の逆で、エレメントをスライドさせて表示します。
私は、(JQueryの)要素を表示するためのスライドアップエフェクトを行うための魔法の機能がないことに同意していると思っていることを知っています。
私たちが必要とするものを得るためには、少しだけ作業を行う必要があります。私はいくつかの解決策を発見し、ここで私は実装が簡単だと思うものです:
http://jsfiddle.net/D7uT9/250/
:https://coderwall.com/p/9dsvia/jquery-slideup-to-reveal
ソリューションは、上記のクリックイベントのために、ホバーイベントと連携し、この変更されたコードを試してみてください
@redbmkで示される回答もまた有効な解決策です。
ご迷惑をおかけして申し訳ありません。
OLD ANSWER
それは古い記事ですが、誰かが解決策を探しているなら、ここに私recommandationです。
この効果を得るには、slideToggle()
を使用することができます(jQuery UIは不要です)。
$(".btn").click(function() {
$("div").slideToggle();
});
ドキュメント:jQueryのUIを使用ドントが、jQueryのライブラリに機能を追加したい人のためにhttp://api.jquery.com/slidetoggle/
downvotingにコメントが付いていると非常に便利です。ありがとうございました – youssman
:
jQuery.fn.slideUpShow = function (time,callback) {
if (!time)
time = 200;
var o = $(this[0]) // It's your element
if (o.is(':hidden'))
{
var height = o.css({
display: "block"
}).height();
o.css({
overflow: "hidden",
marginTop: height,
height: 0
}).animate({
marginTop: 0,
height: height
}, time, function() {
$(this).css({
display: "",
overflow: "",
height: "",
marginTop: ""
});
if (callback)
callback();
});
}
return this; // This is needed so others can keep chaining off of this
};
jQuery.fn.slideDownHide = function (time,callback) {
if (!time)
time = 200;
var o = $(this[0]) // It's your element
if (o.is(':visible')) {
var height = o.height();
o.css({
overflow: "hidden",
marginTop: 0,
height: height
}).animate({
marginTop: height,
height: 0
}, time, function() {
$(this).css({
display: "none",
overflow: "",
height: "",
marginTop: ""
});
if (callback)
callback();
});
}
return this;
}
クレジット:
に答える@redbmk- 1. jqueryの「表示/非表示」JavaScriptでdiv要素ではない、としない表示と:なし
- 2. reactJSの要素を表示/非表示にしない
- 3. jQueryさまざまな要素のトラブルシューティングを表示/非表示
- 4. SplitViewControllerをポートレートモードで非表示にしないでください
- 5. JavaScript/HTML非表示のフォーム要素が正しく表示されない
- 6. JQueryが要素を表示/非表示にしていません
- 7. Jquery Divクリックして表示しないでください
- 8. 要素の外側をクリックしてドロップダウンを非表示にしないでください
- 9. ドロップダウンリストを非表示にしないでください。
- 10. jQuery条件に基づく要素の表示/非表示
- 11. Jquery div要素非表示
- 12. jsp要素を他の要素に基づいて非表示/非表示
- 13. コンテンツを表示/非表示にするにはをクリックしてください
- 14. 他の要素を表示していない場合は、要素が表示されているかどうかを確認してください。
- 15. jQuery要素が表示されない
- 16. jQuery:要素が表示された後で非表示にしますか?
- 17. クロムとエッジのjQueryフリッカーで要素を非表示にして表示
- 18. jQuery - 要素が非表示になっています
- 19. jqueryで前の要素を表示/非表示にする
- 20. 隠し要素を表示して非表示にする
- 21. jQueryで表示後に要素を正しく表示する方法:なし
- 22. 要素を非表示にするjQueryが機能していない
- 23. 表示要素:まだ表示されていませんか?
- 24. CSS - CheckBoxに基づいて要素を表示/非表示
- 25. jQuery表示されているか表示されているすべての要素を選択してください:なし
- 26. Javascriptを使用して要素を非表示と表示
- 27. スクロールしてフォーカスのない要素を非表示にする
- 28. Angularjs/HTML li要素を表示して非表示にする
- 29. 要素がブラウザに表示されている間divを表示しない
- 30. 完全に表示されていない場合は、要素の最後までスクロールしてください。
可読性のために上書きされました – rossipedia
divを表示して、それを隠していないようにしたい –
Umair、私は持っていますこれを試してはいけませんが、「隠す」を「表示」に変更して、方向を変えようとする可能性があります。 – Jason