1

我有一张图像,我只想在主页上加载一次,通过我的介绍页面访问(它在加载时消失,是我介绍页面的一种视觉回声)。单击导航栏中的“主页”后,我不希望图像出现在后续视图的主页上。

有人建议我设置一个 cookie,或者使用 URL 参数“指定是否淡化图像”(设置 /index?nofade=true)。我想试试后者,因为不是每个人都启用 cookie。

问题是,在花了一天的时间在网上拖网之后,我也不知道该怎么办,(脸红)。

谁能帮我?我是编码新手,所以不确定如何编写/包含“不褪色真实”位,我正在使用 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 回答