【问题标题】:Is it possible to make smooth page navigation transitions in Wicket?是否可以在 Wicket 中进行平滑的页面导航转换?
【发布时间】:2023-12-27 18:20:01
【问题描述】:

我想在 Wicket Java 框架中的页面导航之间进行一些平滑的转换。是否可以使用 Wicket 工具、javascript 和 css?我找不到办法做到这一点。

感谢您的任何回答。

【问题讨论】:

  • 您好,您能详细说明一下“平滑”过渡吗?您是想使用一些动画还是只是想使用一些 AJAX 来刷新页面的某些部分?
  • 我想慢慢地淡出上一页并同时滚动到它,例如从左至右是新页面,之前点击过哪个链接。我只找到了方法,例如如何做vue.js,但它是制作 webapps 的完整框架。当 Wicket 更改页面时,我想获得类似的行为(非常简单的动画)。有可能吗?

标签: javascript java css css-transitions wicket


【解决方案1】:

Wicket 不为此提供解决方案。大多数 Wicket 应用程序使用整页重新重定向/重定向或 Ajax 来仅更新页面的一部分,而不是整个页面。

我建议您尝试使用 CSS 关键帧。这个想法是在这两个 JS 事件上将 CSS 类添加到页面的主体:beforeunloadDOMContentLoaded(又名domready)。当beforeunload 被触发时,您需要删除fade-in 并添加fade-out CSS 类。为DOMContentLoaded 做相反的事情。

CSS 将如下所示:

/* make keyframes that tell the start state and the end state of our object */

 @-webkit-keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
 @-moz-keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
 @keyframes fadeIn { from { opacity:0; } to { opacity:1; } }

 .fade-in {
      opacity:0;  /* make things invisible upon start */
      -webkit-animation:fadeIn ease-in 1;  /* call our keyframe named fadeIn, use animattion ease-in and repeat it only 1 time */
      -moz-animation:fadeIn ease-in 1;
      animation:fadeIn ease-in 1;

      -webkit-animation-fill-mode:forwards;  /* this makes sure that after animation is done we remain at the last keyframe value (opacity: 1)*/
      -moz-animation-fill-mode:forwards;
      animation-fill-mode:forwards;

      -webkit-animation-duration:1s;
      -moz-animation-duration:1s;
      animation-duration:1s;
 }

我的 CSS 不太好,所以最好向 Google 询问更多信息。

【讨论】:

  • 非常感谢,我会试试的。 :) 所以解决方案只适用于 javascript 和 css,对吧?
  • 是的。纯 JS 和 CSS!不需要 Wicket/Java 代码。
  • 完美,我会试试的。 :) 非常感谢。
  • 它正在工作,我还没有尝试淡出,因为我认为,检票口会立即改变页面,所以 beforeunloud 不起作用,但淡入正在工作。完美的 ! :) 我不得不添加可见隐藏的身体样式,因为 Wicket 闪烁然后动画,但这种方式是有效的。在 domContentLoaded 上,添加了淡入类并添加了可见类。 :)
  • 淡出不起作用,因为页面会立即被检票口更改。也许会有一些延迟......
最近更新 更多