jquery - CSS3 中的滑动动画

标签 jquery ios css webkit

我目前正在开发一个用 HTML 5、CSS3 和 jQuery 编写的移动应用程序框架。对于“屏幕”的标记,我有以下布局:

<div class="page" id="home">
    <!-- some content is here... -->
</div>
<div class="page" id="lists">
    <!-- some more content is here... -->
</div>

我目前正在使用 jQuery 检测页面上的第一个 div 元素并将其 class 属性设置为 current。然后我有以下 CSS 声明,它隐藏了 page.current 以外的任何内容:

div.page {
    display: none;
}
    div.page.current {
        display: block;
    }

每当浏览器检测到哈希更改事件 (window.onhashchange) 时,我都会运行以下 jQuery:

if(window.location.hash)
{
    var the_hash = window.location.hash.substring(1);
    if($('#' + the_hash).length > 0)
    {
        $('.current').removeClass('current');
        $('#' + the_hash).addClass('current');
    }
}
else
{
    $('div').eq(0).addClass('current');
}

这非常适合显示被点击的 anchor 元素。但是,我现在想创建一个 CSS 过渡(像幻灯片过渡一样简单)。我知道我可以使用 jQuery 和 animate() 来实现这一点,但我更愿意使用完全 CSS3 动画(类似于过渡变换),因为 iOS 为这些动画提供了硬件加速。

任何人都可以指出正确的方向,关于如何使用这个标记我可以添加动画以从右到左删除当前 div,同时显示新的?

最佳答案

最简单的方法可能是为每个屏幕外页面添加另一个类,例如 .left.right,将页面定位在屏幕外的那一侧,也许使用 left: CSS 属性。

要将页面显示在屏幕上,您需要删除 .left 类并将其更改为 .current

要使过渡动画化,您需要在 .page 类上使用 CSS 规则,例如:

-webkit-transition: left 1s linear;

关于jquery - CSS3 中的滑动动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7141233/

相关文章:

html - 使嵌入式网页适合浏览器窗口的宽度和高度?

javascript - DHTMLX Scheduler 具有自定义时间线周/月 View ?

jquery - 如何不使用内置搜索/过滤框来过滤 jqGrid 数据

javascript - Google Maps API 在移动设备上的滑动与屏幕滚动发生冲突

javascript - 设置 css 元素的背景图像

css - 为什么我不能用 CSS 动画改变位置

javascript - jQuery,通过单击 <li> 项目平滑滚动到 Div

javascript - 在现有应用程序上实现 RequireJS

ios - 在搜索期间向 tableView 添加部分和行,如 Tweetbot 中所示

iOS 8 CATransition - 屏幕外的幻灯片 View