如何使用 jQuery 使每个会话仅在会话开始时运行一次动画?

发布于 2024-10-16 00:33:27 字数 342 浏览 3 评论 0原文

目标

在网站加载期间,将一个名为 #topbar 的 div 固定到浏览器窗口的顶部,从 height: 100% 开始opacity: 1.0.animate() 降至 height: 2px & 不透明度:0.2

该动画将在加载网站任何页面时播放;它只需是每个新会话的第一个页面加载即可。如果访问者离开网站并在 5 分钟后重新加载任何页面,他们将再次看到相同的动画。

如何通过 jQuery 实现这一目标?

Goal

During the loading of the site have a div fixed to the top of the browser window named #topbar start off at height: 100% & opacity: 1.0 and .animate() down to height: 2px & opacity: 0.2.

This animation will broadcast upon the loading of any page of the site; it just has to be the first page load of each new session. If a visitor leaves the site and then reloads any page from it 5 minutes later, they will see this same animation take place once again.

How can one accomplish this via jQuery?

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

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

发布评论

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

评论(2

清风无影 2024-10-23 00:33:27

正如 Scrum Meister 指出的那样,cookie 是最好的方式。

检查是否有 foobar cookie
如果是的话,不如不做动画,
如果没有,则设置 cookie 5 分钟过期或什么
启动动画

,另一个代码很好:在每个页面上创建一个 ajax 函数,用于重置过期时间,

例如

setcookie(date) //this sets your cookies you should implement for yourself
func setagain() {
    setcookie(expanded_date);
    window.setTimeot(setagain,10000);
} 

if(iscookie() == true) {
setagain()
}
else {
animate()
setagain();
}

cookies 教程:
http://www.w3schools.com/JS/js_cookies.asp

cookies the best way as The Scrum Meister pointed.

check is there any foobar cookie
if yes than not to do the animaztion,
if not then set a cookie for 5 minutes expire or what
start the animation

and another code is good: on every page create an ajax function which resets the expiration time

for example

setcookie(date) //this sets your cookies you should implement for yourself
func setagain() {
    setcookie(expanded_date);
    window.setTimeot(setagain,10000);
} 

if(iscookie() == true) {
setagain()
}
else {
animate()
setagain();
}

cookies tutorial:
http://www.w3schools.com/JS/js_cookies.asp

水波映月 2024-10-23 00:33:27

根据: http://api.jquery.com/animate/

考虑到这一点,我会使用Ajax 设置某种会话。
即:

并且您可以检查会话是否已设置以及创建时间。

<?php
$time_till_animate = 60*5;//5 minutes
session_start(); 
if(isset($_SESSION['animate']) && isset($_SESSION['animate_time'])){
if((time()-$_SESSION['animate_time']) > $time_till_animate){
     //Animate
}}else{
     //Animate
}

从那时起你就定了。

PS:我确信有很多更好的方法可以做到这一点。 (不确定你是否使用PHP,如果不使用请忽略)

According to: http://api.jquery.com/animate/

With that in mind I would use Ajax to set some sort of Session.
ie: <?php session_start(); $_SESSION['animate']=true; $_SESSION['animate_time']=time(); ?>

And you can check if the session is set and the time when it was created.

<?php
$time_till_animate = 60*5;//5 minutes
session_start(); 
if(isset($_SESSION['animate']) && isset($_SESSION['animate_time'])){
if((time()-$_SESSION['animate_time']) > $time_till_animate){
     //Animate
}}else{
     //Animate
}

from then on you are set.

PS: I'm sure there are plenty of better ways to do it. (not sure if you use PHP, just ignore if you dont)

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