如何在离开页面之前对点击的链接进行动画处理?

发布于 2025-01-08 00:06:37 字数 123 浏览 0 评论 0原文

这是我想要实现的目标:

  1. 单击 HTML 链接时,我想在离开页面之前对其进行动画处理
  2. 如果在新窗口/选项卡中打开链接,则不应发生动画

我到底如何实现这一目标?

Here's what I want to achieve:

  1. When an HTML link is clicked, I want to animate it before leaving the page
  2. If the link is opened in a new window/tab, the animation should not take place

How on earth do I achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我们只是彼此的过ke 2025-01-15 00:06:37

您可以使用 javascript

$(function(){
  $(".btn").bind("click",function(){
    $(this).animate({'left': '100px'}, 100, function(){
    window.location.href = index.html
  })
 })
})

但如果您的按钮是链接,则必须停止默认操作。

You could use javascript

$(function(){
  $(".btn").bind("click",function(){
    $(this).animate({'left': '100px'}, 100, function(){
    window.location.href = index.html
  })
 })
})

But you'll have to stop the default action if your button is a link.

痴意少年 2025-01-15 00:06:37

您需要捕获单击事件,阻止默认操作,执行动画,然后加载新页面。

如果使用jquery(可作为a jsfiddle):

$('a').click(function (event) {
  event.preventDefault();
  $(this).animate({
    //whatever
  }, function() {
    location.href = $(this).attr("href");
  });
});

更新这是新的 jsfiddle,它解释了评论中提到的情况,去那里获取更新后的代码。诀窍是查找 ctrl 或 command 的按键,并在按下任一键时中止新定义的动画单击处理程序。

注意:窗口需要获得焦点才能检测到按键,在 jsfiddle 中,这意味着框架需要获得焦点才能工作。

You'll need to capture the click event, prevent the default action, do the animation, then load the new page.

If using jquery (Available as a jsfiddle):

$('a').click(function (event) {
  event.preventDefault();
  $(this).animate({
    //whatever
  }, function() {
    location.href = $(this).attr("href");
  });
});

Update: Here's the new jsfiddle that accounts for the situation mentioned in the comments, go there for the updated code. The trick is to look for the keypress of ctrl or command, and abort the newly defined animated click handler if either key is pressed.

Note: The window needs focus before it can detect a keypress, in jsfiddle, that means the frame needs focus before it'll work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文