1

以下は、非表示にする目的のスパンです

<span class="lastSave" name="lastSave">Last Saved by <i name="lastSavedBy"></i> at <i name="lastSaved"></i> </span>

このページの下に表があります。

以下は、何らかのイベントで呼び出される JavaScript の関連関数です。これにより、テーブルが上に移動することに注意してください。

function hideLastSaved(form){
    jQuery(' [name="lastSave"]').hide();
}

function showLastSaved(form){
    jQuery(' [name="lastSave"]').show();
}

JavaScriptの上記のスニペットの代わりに、次のことを試しました。これにより、テーブルが上に移動することはありません。しかし、これにはある種のフェードアウトがあり、私のアプリケーションでは望ましくありません。

function hideLastSaved(form){
    jQuery(' [name="lastSave"]').animate({opacity:0});
}

function showLastSaved(form){
    jQuery(' [name="lastSave"]').animate({opacity:100});
}
4

7 に答える 7

6

他のすべてをそのままにしておきたかったので、.hide()jQuery では機能しませんでした。これは、CSS で次のクラスを追加することと同等であるためです。

.hide{
display: none
}

また、私はアニメーションの形式が欲しくなかったので.animate()、不透明度を 0 から 1 に変更することは私が探しているものではありません。試してみましたが、要素がフェードアウトするのがわかります。ページ内の他のすべてが移動することなく、すぐに消えてほしい。

.css( propertyName, value ) を使用することにしました

function hideLastSaved(form){
    jQuery(' [name="lastSave"]').css('visibility','hidden');
}

function showLastSaved(form){
    jQuery(' [name="lastSave"]').css('visibility','visible');
}

これは、次のようなクラスを追加する短い方法です。

.hider{
visibility: hidden
}

を使用して要素に

function hideLastSaved(form){
    $(' [name="lastSave"]').addClass('hider');
}

function showLastSaved(form){
    $(' [name="lastSave"]').removeClass('hider');
}

ジェイミー・ディクソンの提案に似ています。

Nightw0rkが提案することは試していません:

function hideLastSaved(){
    jQuery(' [name="lastSave"]').css('opacity','0');
}

function showLastSaved(){
    jQuery(' [name="lastSave"]').css('opacity','1');
}

しかし、それがどのように見えるかを知っているので、試してみます。

素晴らしい提案をありがとうございました。

于 2011-08-22T01:29:52.890 に答える
2

hide メソッドdisplayは、要素のプロパティを に変更しますnone

非表示にしながら要素の位置を維持したい場合は、 に設定するクラスを追加しvisibilityますhidden

CSS:

.hider{
   visibility:hidden;
}

JS

function hideLastSaved(form){
    $(' [name="lastSave"]').addClass('hider');
}

function showLastSaved(form){
    $(' [name="lastSave"]').removeClass('hider');
}

これは非常に基本的なデモです: http://jsfiddle.net/dWw7F/

于 2011-08-19T10:42:04.633 に答える
2

css の visible プロパティを変更してみてください。

于 2011-08-19T10:43:06.730 に答える
0

古いバージョンの JQuery を使用している場合は、次を使用します。

function hideLastSaved(form){
jQuery(' [name="lastSave"]').fadeOut(1);
}

function showLastSaved(form){
jQuery(' [name="lastSave"]').fadeIn(1);
}

「1」は単に 1 ミリ秒のタイム スケールを設定するだけで、技術的には何もありません。新しいバージョンの JQuery を使用している場合は、JQuery の代わりに $ を追加するだけです。

function hideLastSaved(form){
$('[name="lastSave"]').fadeOut(1);
}

function showLastSaved(form){
$('[name="lastSave"]').fadeIn(1);
}
于 2014-01-09T21:04:09.107 に答える
0
function hideLastSaved(){
    jQuery(' [name="lastSave"]').css('opacity','0');
}

function showLastSaved(){
    jQuery(' [name="lastSave"]').css('opacity','1');
}
于 2011-08-19T10:47:31.960 に答える
0

の可視性を変更するには、次のコードを使用しますspan

$('#uniqueSpanId').animate({opacity: 0.0});

これにより、スパンの不透明度がuniqueSpanId0 に変更され、非表示になります。それを元に戻すには、反対のコマンドを実行するだけです。

$('#uniqueSpanId').animate({opacity: 1.0});
于 2011-08-19T10:47:50.430 に答える
0

別の方法:

function hideLastSaved(form){
    jQuery(' [name="lastSave"]').css('display','none');
}

function showLastSaved(form){
    jQuery(' [name="lastSave"]').css('display','block');
}

jQuery hide()= セットdisplay: nonevisibility: hidden、トランジションあり

jQuery show()= セットdisplay: blockvisibility: visible、トランジションあり

于 2011-08-19T10:52:29.463 に答える