【问题标题】:fast back button clicking makes page transitions not work快速后退按钮单击使页面转换不起作用
【发布时间】:2013-02-08 21:23:36
【问题描述】:

我是 jQuery、HTML、css 和所有方面的业余爱好者,如果有更多知识的人可以帮助我,我将不胜感激。这是我正在为我的女朋友制作的网站:www.sharyncunneen.com。

如果您点击那里的按钮,您会注意到我已经完成了一些动画页面转换,涉及到按钮的不透明度、大小和位置。问题是当我单击浏览器后退按钮时:如果我以相当慢的速度单击它,转换仍然可以正常工作,但如果我连续快速单击几次,就像 jQuery/javascript 没有时间赶上或某物。我真的不知道。

您需要查看文件或代码吗?我不会包括任何其他内容。我认为最好让您告诉我哪些信息会对您有所帮助,因为我不确定在此论坛上进行的最佳方式,我想向有经验的用户学习。

【问题讨论】:

  • 您使用什么浏览器进行了测试?它似乎在 Chrome 中的旧笔记本电脑(i5 M520,3 Gig RAM)上运行良好。
  • 在 Firefox 上也没有问题
  • 在 FF、Chrome 上没有问题,但 IE 9 有。我不知道这是否可以解决。
  • 对不起!应该更具体。我什至还没有考虑过IE问题。我的问题是所有其他主要浏览器(Chrome、FF、Opera 和 Safari)的一个不太明显的问题:如果你从主页开始,按钮上的不透明度为 1。然后如果你点击一下,他们改变。到目前为止,这一切都很好,而且是设计使然。如果您随后快速点击返回按钮返回主页,则不透明度不会恢复为 1。但这仅在您快速点击“返回”时才会发生。
  • (我的礼貌!)谢谢您的回复!

标签: javascript jquery css back-button transitions


【解决方案1】:

我根本看不到任何过渡 o0 无论如何,您可以使用 jquery 队列功能。 开始动画时开始一个队列,当你的过渡完成时清除它。您还可以限制排队事件的数量,以避免网站因快速点击而疯狂。

【讨论】:

  • 感谢您的反馈,让-乔治。在阅读了您之前的建议后,我一直在研究 jQuery 中的队列是如何工作的。我从来没有研究过它,因为我主要是在学习我需要的东西。这听起来很有希望。我会告诉你结果如何。
  • 其实很简单。您将整个函数 a 放入队列中: $(document).queue(function(){ //do some stuff });当程序准备好重复代码时,您执行 $(document).clearQueue() 或任何方法,不记得了。
  • 其实我开始明白我的问题有点不成熟。在研究 jQuery 队列功能如何工作时,我意识到我需要学习多少东西。我想我必须找出有关承诺对象和延迟对象之类的东西。谢谢你们。当我知道更多时,我会回来的!
  • 再次感谢让-乔治。我最终在动画任何元素之前使用了 $("#element:animated").stop("true") ,现在一切似乎都在工作。 stop() 方法类似于 clearQueue() 但特别属于 fx 队列。您的提示让我找到了正确的研究方向。
  • 很高兴它有帮助。不要忘记为可能遇到相同问题的其他用户验证答案;)
猜你喜欢
  • 2015-07-23
  • 1970-01-01
  • 2018-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多