我是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>
答案 0 :(得分:0)
对不起,我刚发布了一个完全不同的解决方案,看到小姐明白你的问题。
无论如何,当你从该位置读取哈希值时,它会返回类似#test1
的字符标记字符,所以你需要用这样的东西删除它
var hash = location.hash.split("#")[1]
并运行您的代码。
现在滚动页面将覆盖动画功能的动画