CSS/JavaScript滑出和滑入

CSS/JavaScript滑出和滑入,javascript,html,css,slide,Javascript,Html,Css,Slide,我希望能够滑出一个div(向左),同时滑入另一个div(从右) 我的HTML代码如下所示: <body> <div id="content"> <div id="page1"> <!-- Content Area 1 --> </div> <div id="page2"> <!-- Content Area 1 --

我希望能够滑出一个div(向左),同时滑入另一个div(从右)

我的HTML代码如下所示:

<body>
    <div id="content">
        <div id="page1">
            <!-- Content Area 1 -->
        </div>
        <div id="page2">
            <!-- Content Area 1 -->
        </div>
    </div>
</body>
function showPage1()
{
    document.getElementById("content").setAttribute("class", "")
}
function showPage2()
{
    document.getElementById("content").setAttribute("class", "showPage2")
}
在页面之间切换,但我希望过渡尽可能顺利

有没有一种方法可以做到这一点,不用jQuery,最好只使用CSS?
如果没有,我如何在jQuery中执行此操作?

使用jQuery


内容区1
内容区1
$(文档).ready(函数(){
$('#第1页')。设置动画({
边缘左侧:“+=90”
}, 5000);
$('#第2页')。设置动画({
边缘右侧:“+=90”
}, 5000);
});
使用jQuery编辑的fiddle=>


内容区1
内容区1
$(文档).ready(函数(){
$('#第1页')。设置动画({
边缘左侧:“+=90”
}, 5000);
$('#第2页')。设置动画({
边缘右侧:“+=90”
}, 5000);
});
使用jQuery编辑的fiddle=>


内容区1
内容区1
$(文档).ready(函数(){
$('#第1页')。设置动画({
边缘左侧:“+=90”
}, 5000);
$('#第2页')。设置动画({
边缘右侧:“+=90”
}, 5000);
});
使用jQuery编辑的fiddle=>


内容区1
内容区1
$(文档).ready(函数(){
$('#第1页')。设置动画({
边缘左侧:“+=90”
}, 5000);
$('#第2页')。设置动画({
边缘右侧:“+=90”
}, 5000);
});
编辑的fiddle=>

这里有一个(几乎)完整的CSS解决方案:

如果你能更具体地说明你想要什么,我可以很高兴地调整或引导你通过代码来帮助你

它依赖于使用translate3d:

transform: translate3d(-200px, 0, 0);
这里有一个(几乎)完整的CSS解决方案:

如果你能更具体地说明你想要什么,我可以很高兴地调整或引导你通过代码来帮助你

它依赖于使用translate3d:

transform: translate3d(-200px, 0, 0);
这里有一个(几乎)完整的CSS解决方案:

如果你能更具体地说明你想要什么,我可以很高兴地调整或引导你通过代码来帮助你

它依赖于使用translate3d:

transform: translate3d(-200px, 0, 0);
这里有一个(几乎)完整的CSS解决方案:

如果你能更具体地说明你想要什么,我可以很高兴地调整或引导你通过代码来帮助你

它依赖于使用translate3d:

transform: translate3d(-200px, 0, 0);

是的,您可以通过使用
动画关键帧来使用纯css实现

HTML

<div id="content">
    <div id="page1" class="page">
        <!-- Content Area 1 -->        
    </div>
    <div id="page2" class="page">
        <!-- Content Area 1 -->        
    </div>
</div>
然而这种方法有一个巨大的局限性。CSS无法处理任何真实事件。因此,如果您希望在单击按钮或其他东西时显示此动画,则必须使用JavaScript

演示

已编辑 现在左边的一个同时进入,右边的一个同时退出

更新
使用
translate3d
=>

的相同示例是的,您可以通过使用
动画关键帧来使用纯css实现

HTML

<div id="content">
    <div id="page1" class="page">
        <!-- Content Area 1 -->        
    </div>
    <div id="page2" class="page">
        <!-- Content Area 1 -->        
    </div>
</div>
然而这种方法有一个巨大的局限性。CSS无法处理任何真实事件。因此,如果您希望在单击按钮或其他东西时显示此动画,则必须使用JavaScript

演示

已编辑 现在左边的一个同时进入,右边的一个同时退出

更新
使用
translate3d
=>

的相同示例是的,您可以通过使用
动画关键帧来使用纯css实现

HTML

<div id="content">
    <div id="page1" class="page">
        <!-- Content Area 1 -->        
    </div>
    <div id="page2" class="page">
        <!-- Content Area 1 -->        
    </div>
</div>
然而这种方法有一个巨大的局限性。CSS无法处理任何真实事件。因此,如果您希望在单击按钮或其他东西时显示此动画,则必须使用JavaScript

演示

已编辑 现在左边的一个同时进入,右边的一个同时退出

更新
使用
translate3d
=>

的相同示例是的,您可以通过使用
动画关键帧来使用纯css实现

HTML

<div id="content">
    <div id="page1" class="page">
        <!-- Content Area 1 -->        
    </div>
    <div id="page2" class="page">
        <!-- Content Area 1 -->        
    </div>
</div>
然而这种方法有一个巨大的局限性。CSS无法处理任何真实事件。因此,如果您希望在单击按钮或其他东西时显示此动画,则必须使用JavaScript

演示

已编辑 现在左边的一个同时进入,右边的一个同时退出

更新
使用
translate3d
=>

的相同示例在没有jQuery的情况下非常可能,只使用CSS和CSS转换

您可以设置CSS,以便在
没有类
.showPage2
时显示第1页。如果有
.showPage2
,则显示第2页

然后,只有通过使用(本机)Javascript切换类才能触发转换。动画由CSS转换处理。这意味着,如果通过任何更改,浏览器不支持CSS3转换,用户仍将看到正确的页面;只是不需要花哨的过渡。CSS3转换通常非常平滑

这就是CSS的外观:

#content
{
    position: relative;
    overflow: hidden;
}
#content #page1
{
    position: absolute;
    left: 0%;

    width: 100%;
    height: 100%;

    transition: left .5s ease-out;
    -webkit-transition: left .5s ease-out;
}
#content #page2
{
    position: absolute;
    left: 100%;

    width: 100%;
    height: 100%;

    transition: left .5s ease-out;
    -webkit-transition: left .5s ease-out;
}

#content.showPage2 #page1
{
    left: -100%;
}
#content.showPage2 #page2
{
    left: 0%;
}
Javascript可能看起来像这样:

<body>
    <div id="content">
        <div id="page1">
            <!-- Content Area 1 -->
        </div>
        <div id="page2">
            <!-- Content Area 1 -->
        </div>
    </div>
</body>
function showPage1()
{
    document.getElementById("content").setAttribute("class", "")
}
function showPage2()
{
    document.getElementById("content").setAttribute("class", "showPage2")
}

我希望这能满足您的需要。

如果不使用jQuery,只使用CSS和CSS转换,这是非常可能的

您可以设置CSS,以便在
没有类
.showPage2
时显示第1页。如果有
.showPage2
,则显示第2页

然后,只有通过使用(本机)Javascript切换类才能触发转换。动画由CSS转换处理。这意味着,如果通过任何更改,浏览器不支持CSS3转换,用户仍将看到正确的页面;只是不需要花哨的过渡。CSS3转运蛋白