Javascript 如何在一行中使用滑动div?
我试图使用两个div,它们位于一个容器中。当我向左滑动第一个div并将其隐藏,同时显示第二个div并将其向左滑动时,第二个div被放置在第一个div的下方,从而破坏页面 HTML代码Javascript 如何在一行中使用滑动div?,javascript,jquery,css,html,Javascript,Jquery,Css,Html,我试图使用两个div,它们位于一个容器中。当我向左滑动第一个div并将其隐藏,同时显示第二个div并将其向左滑动时,第二个div被放置在第一个div的下方,从而破坏页面 HTML代码 <div id="mainhomediv" class="maindiv"> </div> <div id="mainhomediv1" class="maindiv"> </div> jQuery脚本 $(function(){ var counte
<div id="mainhomediv" class="maindiv">
</div>
<div id="mainhomediv1" class="maindiv">
</div>
jQuery脚本
$(function(){
var counter=0;
var divs=$('#mainhomediv,#mainhomediv1');
function hideDiv(){
divs.show().animate({'left': '-100%'},1000);
divs.hide('fast');
counter++;
}
function showDiv(){
divs.filter(function(index){return index==counter%2;})
.show('fast').animate({'left': '0%'},1000);
}
setInterval(function(){
hideDiv();
showDiv();
},5*1000);
});
如何将每个div从左向右滑动,同时保持在同一行上?尝试添加
float:left编码>到你的css类。试试这个
左div
右分区
#主播{
浮动:左;
}
#主家庭部1{
浮动:对;
}
需要将float left和right分配给div,并将它们包装在一个容器中。animate/show/hide是一种异步函数,div不会在调用div之后立即隐藏。hide('fast'),那里有一个回调
divs.hide('fast', function(){
//here the divs is hide
});
因此,如果要隐藏->显示,请将显示移动到隐藏的回调中
我不确定这是否是您想要的,但请尝试:
$(function() {
var counter = 0;
var divs = $('#mainhomediv,#mainhomediv1');
//make both left side
divs.css({
'left' : '-100%'
});
function showSomeDiv() {
//the div to show
var ds = divs.eq(counter % 2);
//the div to hide
var dh = divs.eq((counter + 1) % 2);
dh.hide('fast', function() {
//make it left side
dh.css({
'left' : '-100%'
});
//slide ds out
ds.show().animate({
'left' : '0%'
}, 1000, function() {
counter++;
//do it again
setTimeout(showSomeDiv, 1000);
});
});
}
//Let's go
showSomeDiv();
});
我可能会将它们包装在一个container div中,并让它们绝对定位,container div上有overflow:hidden。我的container div是绝对定位的,因此更改maindiv的位置会破坏页面!您的maindiv类不也需要是绝对的吗?maindiv在容器中。我已将两者都设置为绝对值。这就是页面的结构。看看你的CSS,它表明.maindiv是相对定位的。不能这样做。由于容器是绝对的,这样做会破坏页面!我知道,兄弟。你刚才给我看的小提琴确实有用。但是,当我尝试将浮点分别分配到左侧和右侧时,它会破坏页面!添加溢出:隐藏到你的容器中。你能详细说明一下吗?我知道在隐藏第一个div和显示第二个div之后需要延迟。我怎样才能确定这一点?
divs.hide('fast', function(){
//here the divs is hide
});
$(function() {
var counter = 0;
var divs = $('#mainhomediv,#mainhomediv1');
//make both left side
divs.css({
'left' : '-100%'
});
function showSomeDiv() {
//the div to show
var ds = divs.eq(counter % 2);
//the div to hide
var dh = divs.eq((counter + 1) % 2);
dh.hide('fast', function() {
//make it left side
dh.css({
'left' : '-100%'
});
//slide ds out
ds.show().animate({
'left' : '0%'
}, 1000, function() {
counter++;
//do it again
setTimeout(showSomeDiv, 1000);
});
});
}
//Let's go
showSomeDiv();
});