Jquery 创建保存状态的手风琴
我已经写了一些代码来为我的网站创建一个手风琴。我的问题是,我想让用户与其他人共享(复制粘贴)url,让他们看到与共享该url的人打开的手风琴项目相同。现在,我的代码可以工作了,但是如果页面太长,它会跳转到手风琴项目的位置。这造成了我希望避免的丑陋效果。理想情况下,我会操纵URL,而无需单击链接 以下是我现在拥有的: HTML: 我创建了一个代码笔来说明我的意思:Jquery 创建保存状态的手风琴,jquery,url,accordion,Jquery,Url,Accordion,我已经写了一些代码来为我的网站创建一个手风琴。我的问题是,我想让用户与其他人共享(复制粘贴)url,让他们看到与共享该url的人打开的手风琴项目相同。现在,我的代码可以工作了,但是如果页面太长,它会跳转到手风琴项目的位置。这造成了我希望避免的丑陋效果。理想情况下,我会操纵URL,而无需单击链接 以下是我现在拥有的: HTML: 我创建了一个代码笔来说明我的意思: 您可以使用return false来阻止链接的默认操作(滚动到锚点) 因此,您必须动态更改哈希: window.location.h
您可以使用
return false
来阻止链接的默认操作(滚动到锚点)
因此,您必须动态更改哈希:
window.location.hash = '#' + $(this).attr('id');
您可能还希望使用平滑滚动来防止“跳转”到位置,但仍然可以为用户滚动到右侧幻灯片:您可以使用$('html,body')。动画({scrollTop:…})在slideDown()
动画结束后的code>,如下所示:
.slideDown(function(){
$('html,body').animate({
scrollTop: $(this).parent().offset().top
}, 500);
})
下面是一个带有修改示例的jsbin:(我使用jsbin是因为我在codepen中遇到了哈希问题):
谢谢您的回复!对不起,也许我说得不够清楚。英语不是我的第一语言。实际上,我想防止“跳转”效应。是否平滑滚动。但是,window.location.hash='#'+$(this.attr('id')我相信,代码>对我有帮助。谢谢你。回家后我会接受你的回答。没问题,平滑滚动只是一个建议,但是返回false
和哈希动态修改应该可以满足你的需要;)但是,如果这不符合预期,请告诉我!
window.location.hash = '#' + $(this).attr('id');
.slideDown(function(){
$('html,body').animate({
scrollTop: $(this).parent().offset().top
}, 500);
})