我正在嘗試調整這些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