1

ホームページに一度だけロードしたい画像があり、イントロページからアクセスできます(ロードすると、イントロページからの一種の視覚的なエコーがフェードアウトします)。ナビゲーションバーの[ホーム]をクリックした後、画像が後続のビューのホームページに表示されないようにします。

Cookieを設定するか、URLパラメータを使用して「画像をフェードするかどうかを指定する」(set / index?nofade = true)ことをお勧めします。誰もがCookieを有効にするわけではないので、後者を試してみたいと思います。

ネットをトロールして一日を過ごした後、私はどちらの方法もわかりません(赤面)。

誰か助けてもらえますか?私はコーディングに慣れていないので、「フェードなしtrue」ビットを書き込む/囲む方法がわかりません。jqueryを使用しています。

4

3 に答える 3

2

JavaScript を使用して URL のパラメーターを簡単に解析し、その特定の「nofade」パラメーターが存在するかどうか (または他のパラメーター) を確認し、存在する場合は画像をフェードすることができます。

$(function(){
  // Grab our url parameters and split them into groups
  var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
  // assign parameters to our object
  var params = {};
  for(var i = 0; i < hashes.length; i++){
    var hash = hashes[i].split('=');
    params[hash[0]] = hash[1];
  }
  // Now params contains your url parameters in an object
  if(typeof(params['nofade']) === 'undefined' || !params[nofade]){
    // Perform image fade here

  }
})
于 2012-01-03T18:18:42.350 に答える
1

チェックを追加して、コードの前にそのクエリ文字列が設定されているかどうかを確認して、画像をフェードすることができます。

function getQuerystring(key, defaultVal) {
    if (defaultVal == null) {
        defaultVal = "";
    }
    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(window.location.href);
    if (qs == null) {
        return defaultVal;
    }
    else {
        return qs[1];
    }
}

if(getQuerystring('nofade') == 'true'){
    //do your fading
}

関数は正規表現を使用して、渡されたクエリ文字列を解析し、そのクエリ文字列が見つからない場合は、オプションで設定されたデフォルトでその値を返します

于 2012-01-03T18:16:14.927 に答える
1

私が正しく理解している場合、誰かがあなたのページhttp://www.example.comにアクセスしたときに、そのページにアクセスするたびにロゴが表示され、ロゴをクリックして入力してhttp://に移動する必要があります。 www.example.com/homepage.phpでロゴがフェードアウトします。

しかし、彼らがあなたのページをリロードした場合、ロゴが表示されないようにしたいですか? あれは正しいですか。

その場合、ロゴの href を「homepage.php?fade=true」に設定するだけです。次に、渡された変数を取得し、if ステートメントを実行して、ページをリロードするか、フェードアウトを表示するかを確認できます。

于 2012-01-03T18:20:18.900 に答える