jquery显示/隐藏Div与直接链接

时间:2014-08-19 17:43:46

标签: jquery css hyperlink hide show

Kidnly帮助我完成它:)

所以我有jquery这种简单的SHOW / HIDE内容,但问题是通过直接链接显示它。

工作简单,就像我喜欢的那样。但我需要一些方法来展示它与example.php#div1或example.php#div2

有什么建议吗?

e.preventDefault();
var targetDiv = $($(this).attr('href'));
if(!targetDiv.is(':visible')){
    $('.page').slideUp();
    targetDiv.slideDown();
}else{
    $('.page').slideUp();
}

});

提前致谢!

3 个答案:

答案 0 :(得分:1)

你可以在纯CSS中完成。此示例使用左转换的幻灯片。您可以更改translate转换或使用其他属性(如opacity)进行其他效果,或者只更改display属性以禁用动画。

HTML:

<a href="#div1">Show div1</a>
<div id="div1">1</div>

<a href="#div2">Show div2</a>
<div id="div2">2</div>

CSS:

div {
  transform: translate(-200px);
  transition: transform 400ms ease;
}

div:target {
  transform: none;
}

http://jsfiddle.net/jwhitfieldseed/xf76pgt0/

答案 1 :(得分:1)

我不确定这是否是您正在寻找的。但是你可以添加一个哈希监听器

onhashchange

这是我创建的一个小提琴,它会查看url的哈希部分,而不是监听click事件。

FIDDLE

window.addEventListener("hashchange", function(){    
    var targetDiv = $(location.hash);
    console.log(targetDiv);
    if(!targetDiv.is(':visible')){
        $('.page').slideUp();
        targetDiv.slideDown();
    }else{
        $('.page').slideUp();
    }
}, false);

我不确定这是否会在第一次加载时触发,但在加载事件中,您可以检查location.hash以查看是否存在。

答案 2 :(得分:0)

在url中发送get参数,例如

example.php?div_to_hide=1

并在javascript中执行此操作

var targetDiv = $('#div<?php echo isset($_GET['div_to_hide']) ? $_GET['div_to_hide'] : "" ?>');