我写了手风琴脚本在移动网站上部署,每件事情都很好。但是,当页面长度增加时,我面临一个问题。
手风琴中有大约8到10个小节。当我向下滚动并单击任何项目栏以显示内容时,页面将移至顶部而不是停留在我点击的当前位置。请告诉我解决方案。
下面是脚本
。$( 'acc_container')隐藏(); $(”。acc_container1' )隐藏();
$( 'acc_trigger')。点击(函数(){ $(本).siblings( 'acc_container1。 '),效果基本show(' 快')。 $(本).parent()兄弟姐妹( 'DIV')儿童( 'acc_container1。 '),效果基本show(' 快')。; $(本).parent()兄弟姐妹( 'DIV')儿童( 'acc_container。 '),效果基本show(' 快')。; $(本)。接下来()兄弟姐妹( 'acc_container。 ')了slideDown(' 快')。 });
答案 0 :(得分:1)
我假设您的点击可能是href点击,如果是这样
$("a").click(function(event) {
// do all your logic here and add the below link
event.preventDefault();
});
如果不是href
给你的.acc_container类设置一个你需要的高度,如500px左右,以及
height:600px;
overflow: hidden;
那应该采取Carek
答案 1 :(得分:1)
在您展示内容的每个手风琴的触发器上,我假设是锚标签,您需要阻止事件的默认行为。在锚标记的情况下,也是带您标记的href
属性。如果href
属性设置为#
,则点击锚标记会将您带到页面顶部。所以,这样的事情应该有效,在jQuery的preventDefault()
对象上调用event
,假设.acc_trigger
是所有手风琴触发器的选择器:
$(".acc_trigger").click(function(e) {
$(this).siblings('.acc_container1').slideUp('fast');
$(this).parent().siblings('div').children('.acc_container1').slideUp('fast');
$(this).parent().siblings('div').children('.acc_container').slideUp('fast');
$(this).next().siblings('.acc_container').slideDown('fast');
e.preventDefault();
});