外部目标(URL)和扩展手风琴,有困难

时间:2018-04-24 10:35:43

标签: javascript html

我是JS的新手,我正在尝试自学,以便在我目前正在处理的某些HTML页面上设置一些外部链接。点击下面的网址后,我希望页面自动扫描到手风琴并展开。

理想情况下,我希望能够点击以下网址:     http://www.example.com/page#test2

并向下滚动页面并展开' test2'手风琴。这可行吗?

<div class="accordion-group">
<h2 class="pane-title"><span style="color:#000000;"><a id="test1">test 1</span></a></h2>
<div class="pane-content">
<p>Lorum ipsum asdghjfds asdghfgd asdghsgasd</p>
</div>
</div>

<div class="accordion-group">
<h2 class="pane-title"><span style="color:#000000;"><a id="test2">test 2</span></a></h2>
<div class="pane-content">
<p>Lorum ipsum asdghjfds asdghfgd asdghsgasd</p>
</div>
</div>

目前我正在玩下面的一些JS,但没有取得多大成功。作为一个初学者,任何关于我做错了什么以及如何解决它的建议将不胜感激!

<script>
$(document).ready(function(){

    var getHash = location.hash; //get hash from js object location

    function activateAccordion (id) 
    {
        if(id.length)//check if hash isn't empty
        {
            var accordion = $('a[href="' + id + '"]');
            $('html,body').animate({
                scrollTop: accordion.parents('.panel').offset().top 
                //scroll to accordion
        }, 500,function(){
            accordion.click(); //simulate click
        });
    }
};

activateAccordion(getHash);

});
</script>

1 个答案:

答案 0 :(得分:0)

对不起,我刚发布了一个完全不同的解决方案,看到小姐明白你的问题。

无论如何,当你从该位置读取哈希值时,它会返回类似#test1的字符标记字符,所以你需要用这样的东西删除它

var hash = location.hash.split("#")[1]并运行您的代码。

现在滚动页面将覆盖动画功能的动画