我正在尝试调整这些div,以便当您单击其中一个时,其他人变得更小并且变得隐藏,并且被点击的人占据了整个宽度。 但是,看起来div被单击后其余的div被隐藏起来,达到100%的宽度,使得div在屏幕上跳转并重新备份。如何在同时调整div大小时防止div跳跃?
是否有办法避免这种情况? 我是新来的jquery,只是试验,我已经尝试了很多不同版本的代码,但他们都结束了同样的问题。
<div>
<div id="kg-left" class="role-container role-container-left" style="margin-left:1%;text-align: center;float: left;width: 31%;border: solid;border-width: 1px;padding: 1%;height: 138px;">
SOME TEXT
</div>
<div id="kg-middle" class="role-container role-container-middle"style="margin-left:1%;margin-right:1%;text-align: center;float: left;width: 31%;border: solid;border-width: 1px;padding: 1%;height: 138px;">
MORE TEXT
</div>
<div id="kg-right" class="role-container role-container-right"style="margin-right:1%;text-align: center;float: left;width: 31%;border: solid;border-width: 1px;padding: 1%;height: 138px;">
EVEN MORE TEXT
</div>
<div>
<div>rest of html</div>
最后一个代码我使用:
var roleContainerLeft = $("#kg-left");
var roleContainerMiddle = $("#kg-middle");
var roleContainerRight = $("#kg-right");
var mainMenu = $("#site-header-menu");
var state = 'showAll';
roleContainerLeft.click(function(){
if(state == 'showAll') {
containerSpacers.slideToggle(2000);
roleContainerMiddle.slideToggle(2000);
roleContainerRight.slideToggle(
2000,
function(){
roleContainerLeft.css('width', '100%');
}
);
mainMenu.fadeTo(2000, 1);
state = 'left';
}
});
roleContainerMiddle.click(function(){
if(state == 'showAll') {
roleContainerLeft.addClass('shrink');
roleContainerRight.addClass('shrink');
$(".shrink").animate(
{
width: '0%',
},
2000,
function(){
$(this).hide();
}
);
$(".shrink").css('margin', '0%');
roleContainerMiddle.animate(
{
width: '100%',
},
2000,
function() {
roleContainerMiddle.css('width', '100%');
}
);
roleContainerMiddle.css('margin', '0%');
mainMenu.fadeTo(2000, 1);
state = 'middle';
}
});
roleContainerRight.click(function(){
if(state == 'showAll') {
containerSpacers.slideToggle(2000);
roleContainerMiddle.slideToggle(2000);
roleContainerLeft.slideToggle(
2000,
function(){
roleContainerRight.css('width', '100%');
}
);
mainMenu.fadeTo(2000, 1);
state = 'right';
}
});
这只是我的最新实验中,我一直在使用简单的.slideToggle()等,但无论我尝试,我一直具有“跳跃”的问题尝试。 感谢您的帮助,我一直在敲我的头靠在墙上2天现在:)
见http://stackoverflow.com/questions/33405879/jquery-animate-working-in-fiddle-but-smooth-online/ – guest271314
如果你把它放在答案中,我会高兴地接受它:) – Tweet
查看帖子;使用单个'click'事件和处理程序''.siblings()'来为未被点击的元素设置动画效果,将宽度设置为'80%'。将元素的初始'宽度'设置为'30%'以在视口中均匀地分隔元素,'溢出'为'隐藏'以剪切元素内的文本 – guest271314