javascript - 使用 jQuery 制作窗口动画

标签 javascript jquery

嗨,我正在尝试创建一个单页网站,其中包含多个与窗口大小相同的 div。该网站将有一个菜单,该菜单将引用页面上的每个 div。我想做的是为窗口设置动画当用户单击其中一个菜单链接到其对应的 div 时。

http://www.nistoralexandru.comule.com/div.jpg

当用户单击链接时,我需要窗口为该 div 制作动画,类似于此网站:

http://shahkaarshah.com/

我该怎么做?

最佳答案

您链接到的网站是使用 Flash 构建的,使用 JavaScript 复制不同页面元素的动画应该不难,但确实没有快速的“一刀切”功能来做到这一点。

以下是通常如何完成的快速示例:

构建某种 HTML 结构:

​<div id="site">
    <div id="main" class="page">
        <ul>
            <li><a href="#page1">Page 1</a></li>
            <li><a href="#page2">Page 2</a></li>
            <li><a href="#page3">Page 3</a></li>            
            <li><a href="#page4">Page 4</a></li>
            <li><a href="#page5">Page 5</a></li>
        </ul>
    </div>
    <div id="page1" class="page"><a href="#main">Back</a></div>
    <div id="page2" class="page"><a href="#main">Back</a></div>
    <div id="page3" class="page"><a href="#main">Back</a></div>
    <div id="page4" class="page"><a href="#main">Back</a></div>
    <div id="page5" class="page"><a href="#main">Back</a></div>
</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

并使用一点 JavaScript 在视口(viewport)周围设置动画:

$('.page a').on('click', function(e) {
    e.preventDefault();
    var href = $(this).attr('href'),
        top = $(href).css('top'),
        left = $(href).css('left');
    $("#site").animate({top: '-'+top, left: '-'+left}, 1000);
});

这是一个FIDDLE

关于javascript - 使用 jQuery 制作窗口动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11906434/

相关文章:

javascript - 克隆具有唯一 ID 的 div 不起作用

javascript - 在同一页输出表单结果

javascript - 如何使用 CSS 使某个区域不可点击?

javascript - 具有导航栏时 HTML Canvas 上的鼠标位置不正确

javascript - 如何将状态映射回 Vue.js AWS Amplify 身份验证页面中的组件

javascript - 标记 react native map 无法拖动

javascript - 将鼠标悬停在图像上时获取带有文本的黑色叠加层

javascript - 如何将两个输入绑定(bind)到一个函数

javascript - 左右滑动效果

javascript - 如何在客户端点击按钮时选择不同的leaflet js文件