使用 Jquery fadeout 进行页面过渡

2024-01-07

您好,提前感谢您提供任何解决方案。我一直在尝试在用户切换页面时添加淡入和淡出功能。我已经尝试了在这里和其他论坛上找到的许多解决方案,但似乎都不适用于淡出。淡入效果很好,我只需将 .ghostly 添加到 body 标签即可。我所做的一切都对淡出不起作用。任何帮助将不胜感激,因为我对编码相当陌生。

<script src="http://code.jquery.com/jquery-latest.js"></script>
<style>
    .ghostly {
        opacity: 0;
    }
</style>
<script>
    $(document).ready(function() {
        $('.ghostly').animate({
            opacity: '1'
        }, 3000);
    });
    $("a").click(function(event) {
        event.preventDefault();
        linkLocation = this.href;
        $("body").fadeOut(1000, redirectPage(linkLocation));
    });

    function redirectPage(link) {
        document.location.href = link;
    }
</script>

1. 立即淡出射击!

当您单击锚点时,下一页将开始加载,并且当前页面上的任何代码都将停止。您错误地涵盖了这种情况not等待fadeOut完成!您需要将该调用包装在匿名函数中,

e.g.

$("body").fadeOut(1000, function(){redirectPage(linkLocation)});

否则你只是打电话redirectPage立即地并将其返回值传递给 fad​​eOut 方法!

Option:另一种转换方法是使用 Ajax 加载所有页面。然后您可以应用任何您想要的效果(您通常可以在锚点单击事件处理程序中执行此操作)。这需要您在页面更改时更新浏览器历史记录,但非常有效(您可以通过任何方式转换页面)。

2.ajax加载:

您可以执行以下操作来替换整个页面:

JSFiddle:http://jsfiddle.net/TrueBlueAussie/bwdwc/3/ http://jsfiddle.net/TrueBlueAussie/bwdwc/3/

jQuery(function ($) {
    $('.ghostly').animate({
        opacity: '1'
    }, 3000);
    $(document).on('click', "a", function (event) {
        event.preventDefault();
        $.when($("body").fadeOut(4000).promise(), $.ajax({
            url: this.href,
            type: 'get',
            dataType: 'html'
        })).done(function (html) {
            var newDoc = document.open("text/html", "replace");
            newDoc.write(html);
            newDoc.close();
            $("body").css({
                display: "none"
            });
            $("body").fadeIn(4000);
        });
    });
});

It uses $.when()将动画承诺和 Ajax 调用结合起来。当两者都完成时,它会处理来自 Ajax 页面加载的数据并替换整个页面主体。

*Note: 由于“Access-Control-Allow-Origin”错误,这不会加载链接中的页面,但在您自己的网站中应该可以正常工作。

3.将大部分jQuery代码放入文件准备好:

任何访问“的 jQuery 代码existing“ 元素需要进入文档准备就绪(即您假设已经加载的元素。在这种情况下'a' = 所有锚点).

e.g.

$(document).ready(function() {
    $('.ghostly').animate({
        opacity: '1'
    }, 3000);
    $("a").click(function(event) {
        event.preventDefault();
        linkLocation = this.href;
        $("body").fadeOut(1000, redirectPage(linkLocation));
    });
});

您可以将 jQuery 代码放在末尾body以获得类似的效果,但它会导致代码的可移植性较差(特别是当代码位于单独的 .js 文件中时......它通常会/应该改进缓存)。

4. 或者使用延迟事件处理程序:

如果您使用延迟事件处理程序,您可以这样做:

<script>
    $(document).ready(function() {
        $('.ghostly').animate({
            opacity: '1'
        }, 3000);
    });

    // Catch all anchor clicks bubbled to the document...
    $(document).on('click', "a", function(event) {
        event.preventDefault();
        linkLocation = this.href;
        $("body").fadeOut(1000, redirectPage(linkLocation));
    });

    function redirectPage(link) {
        document.location.href = link;
    }
</script>

延迟事件处理程序通过侦听未更改的祖先元素处的事件来工作(例如,本例中的文档,因为它已经存在),then使用 jQuery 选择器来匹配元素,then为任何匹配元素调用该函数导致该事件的.

5、注意事项:

我还建议您使用此快捷方式来准备文档:

$(function(){
     // Your code here
});

或者更好(以避免与 $ 命名空间冲突):

jQuery(function($){
     // Your code using the local $ here
});

第二个版本是最好的包罗万象的版本,因为本文档准备传递对 jQuery 的引用作为第一个参数。注意:虽然它看起来很相似,但这不是您有时看到的包装 jQuery 代码的 IIFE(立即调用函数表达式).

6.最终推荐:

把所有这些放在一起,你会得到这个:

jQuery(function($) {
    $('.ghostly').animate({
        opacity: '1'
    }, 3000);
    $(document).on('click', "a", function(event) {
        event.preventDefault();
        linkLocation = this.href;
        $("body").fadeOut(1000, function(){redirectPage(linkLocation)});
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Jquery fadeout 进行页面过渡 的相关文章

  • 防止垃圾邮件按钮呼叫功能

    如何防止调用函数时出现垃圾邮件按钮 就像用户只能在按钮上每 1 秒调用一次该函数 有办法做到吗 因为我尝试了 setTimeout 但没有成功 它仍然在发送垃圾邮件 顺便说一句 我使用 Jquery 这是我的代码
  • 为什么 window 与 Internet Explorer 中的 window.self 不同?

    关于我如何遇到这个问题有一个复杂的背景故事 但为什么self属性不完全等于窗口本身 在 Safari 和 Firefox 及其朋友中 结果如我所料 gt window window self true gt window window se
  • 自动建议 php 的 ajax

    我有一个 html 表单 php 脚本和 jquery 我需要一个 ajax 代码来从我的 php 脚本中进行自动建议 以下是代码 表单 html
  • 如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?

    我希望我的 Greasemonkey 脚本仅在其访问的静态页面具有与以前完全相同的内容时运行 现在我可以设置一个包含该页面哈希的变量 我正在寻找一种动态散列页面的方法 以便我可以将我的散列与生成的散列进行比较 关于如何即时实现散列的任何想法
  • React autoFocus 将光标设置为输入值的开头

    我有一个受控输入 最初显示一个值 我已将该输入设置为自动聚焦 但当我希望它出现在末尾时 光标出现在输入的开头 我知道这可能是因为自动对焦是在值之前添加的 但我不能 100 确定 在输入字段末尾完成光标初始化的最佳方法是什么 var Test
  • 计算三次贝塞尔曲线的弧长、曲线长度。为什么不工作?

    我正在用这个算法计算弧长 三次贝塞尔曲线的长度 function getArcLength path var STEPS 1000 gt precision var t 1 STEPS var aX 0 var aY 0 var bX 0
  • IE 中的 XPath 查询使用从零开始的索引,但 W3C 规范是从一开始的。我应该如何处理差异?

    问题 我正在转换目前仅适用于 Internet Explorer 的相对较大的 Javascript 代码 以便使其也适用于其他浏览器 由于代码广泛使用 XPath 我们做了一些兼容性功能以使事情变得更容易 function selectN
  • 如何使用 Javascript 设置查询字符串

    有没有办法使用 javascript 设置查询字符串的值 我的页面有一个过滤器列表 单击该列表时 它将更改右侧的页内结果窗格 我正在尝试更新 url 的查询字符串值 因此如果用户离开页面 然后单击 后退 按钮 他们将返回到最后一个过滤器选择
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • 如何在另一个自定义 Hook 中使用返回值的自定义 Hook?

    我正在使用 React native 其中有一个名为的自定义 HookuseUser使用以下方法从 AWS Amplify 获取用户信息Auth getUserInfro方法 然后获取返回对象的一部分并用它设置一个状态变量 我还有另一个名为
  • 编辑第一个选项名称

    我有以下我无法访问的代码 我想要做的是将一些文本添加到现在为空的第一个选项中 诸如 选择地址 之类的文本
  • 聆听 Angular 2 中的元素可见性

    我正在为我的网络应用程序使用 Bootstrap 和 Angular 2 v4 我想监听指令中的元素以了解可见性变化 我的元素有一个可以隐藏其子元素的父元素hidden sm up我需要在每次隐藏或显示时触发一个函数 div hidden
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 使用 Enzyme 测试 `React.createRef` api

    我想测试下面的类 它使用React createRef api 不过 快速搜索并没有发现任何这样做的例子 有人成功过吗 我该如何嘲笑裁判 理想情况下我想使用shallow class Main extends React Component
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • Flot 库将 y 轴设置为最小值 0 和最大值 24

    如何将 y 轴设置在 0 到 24 的范围内 这是我的代码 j plot j placeholder d1 xaxis mode time min new Date 2010 11 01 getTime max new Date 2011

随机推荐

  • JPanel 错误 - J 组件无法解析

    我有 JRE 系统库 JRE 1 8 x 库 我的线路出现错误 错误 无法解析类型 javax swing JComponent 它是从所需的 class 文件间接引用的 我怎样才能消除这个错误 这是屏幕截图 http i60 tinypi
  • 框架的私有模块映射

    我在用着这个答案 https stackoverflow com a 25250520 849645创建模块映射来为 CommonCrypto 创建模块 以便我可以在框架中使用它 然而 这样做意味着我使用此框架的任何项目都可以通过以下方式访
  • .NET 4.5 文件读取性能同步与异步

    我们正在尝试测量使用同步方法与异步方法读取一系列文件之间的性能 原本期望两者之间的时间大致相同 但结果发现使用异步大约慢 5 5 倍 这可能是由于管理线程的开销造成的 但只是想知道您的意见 也许我们只是测量了错误的时间 这些是正在测试的方法
  • 使用 INDEX/MATCH 进行三维查找

    这是从已被删除的问题中采取并稍微改进的 对于那些可以看到已删除帖子的人 该帖子摘自此处 https stackoverflow com questions 39793322 Three Dimensional lookup no conca
  • Spring REST - 创建 ZIP 文件并将其发送到客户端

    我想创建一个 ZIP 文件 其中包含从后端收到的存档文件 然后将此文件发送给用户 两天来我一直在寻找答案 但找不到合适的解决方案 也许你可以帮助我 目前 代码是这样的 我知道我不应该在 Spring 控制器中完成所有操作 但不要关心这一点
  • 如何在 Java GridLayout 中使用边距和填充

    如何防止 JLabel 显示与框架侧面齐平 我在使用 GridLayout 或 BoxLayout 时遇到同样的问题 这是发生这种情况的示例 JPanel content new JPanel content setLayout new B
  • 导入角度组件以在所有模块中可用

    我最近开始使用 Angular 2 到目前为止我的体验非常棒 我有一些很好的经验ng1 and React以及 所以 这更像是一个普遍问题 也是一个困惑 我很确定这会帮助很多其他人 但我还没有真正找到任何直接的答案 所以假设我有这个modu
  • 实体框架重复对象和所有子属性

    结构示例 public class Page public int PageId get set public string Prop1 get set public string Prop2 get set public virtual
  • Codeigniter:语言文件中的变量/配置项

    我有一个语言文件 其中包含一长串用于我的视图文件的字符串 我的问题是如何将变量或配置项传递到语言文件
  • “const id”的行为

    我正在研究 99 Haskell 问题 并看到了查找列表最后一个元素的解决方案 myLast foldr1 const id 的类型const is a gt b gt a但那个const id is b gt a gt a那么这里有什么魔
  • Build.gradle:对“项目”的访问超出了其访问权限

    常量 gradle project ext minSdkVersion 19 compileSdkVersion 28 targetSdkVersion 28 buildToolsVersion 28 0 3 supportLibraryV
  • 在 boost 中等待多个条件变量?

    我正在寻找一种等待多个条件变量的方法 IE 就像是 boost condition variable cond1 boost condition variable cond2 void wait for data to process bo
  • 将 Web 请求绑定到特定网络适配器

    背景 我有一个带有 2 个网络适配器的移动嵌入式设备 Ubuntu Mono 一种是WiFi 另一种是GSM 要求是当WiFi适配器连接到互联网时 在预定AP的范围内 应用程序上传数据 HTTPS 发布 通过 WiFi 但当 WiFi 不可
  • mod_rewrite - 排除 url

    我需要一个 mod rewrite 来重定向所有http要求https 但我想排除一些网址 force https RewriteCond HTTPS off RewriteCond HTTP HOST secure NC RewriteC
  • 在捆绑扩展中获取 Symfony2 环境

    在我的 Symfony2 捆绑扩展中services yml正在加载中 loader new Loader YamlFileLoader container new FileLocator DIR Resources config load
  • 如何在Android中设置菜单标题[重复]

    这个问题在这里已经有答案了 我正在尝试动态设置菜单的标题 检索并设置它 ItemView menuTitle ItemView findViewById R id menu filter menuTitle setTitle TITLE H
  • 更改 Visual Studio Code 的选项卡栏颜色

    有没有办法在 VS Code 中配置选项卡栏的背景颜色 我知道有一个workBench colorCustomization允许使用 VS Code 更改主题颜色的设置settings json文件 是否可以使用该设置更改它 Tab bar
  • 数据与 [UInt8]

    Swift 两者都提供Data and UInt8 类型 它们做的事情非常相似 两者有何区别 设计新的 API 时 首选类型是什么 UInt8 本质上是一个字节数组 一个字节 我相信你知道 由 8 位组成 虽然 NSData 不仅仅是一个字
  • 如何清理 Arel SQL?

    我有以下 Arel SQL Arel sql users last donated at IS NOT NULL AND users last donated at lt User ACTIVE DONOR WITHIN DAYS days
  • 使用 Jquery fadeout 进行页面过渡

    您好 提前感谢您提供任何解决方案 我一直在尝试在用户切换页面时添加淡入和淡出功能 我已经尝试了在这里和其他论坛上找到的许多解决方案 但似乎都不适用于淡出 淡入效果很好 我只需将 ghostly 添加到 body 标签即可 我所做的一切都对淡