jquery记住页面重装后的动画状态
问题描述:
我的菜单按钮后面有一个块,用于指示哪一个处于活动状态。刷新后有没有办法保持块的位置? 截至目前,当我按下子页面中的链接时,位置被重新设置。jquery记住页面重装后的动画状态
jQuery代码:
$("button",document.body).click(function(){
var offset = $(this).offset();
var offsetBody = $("body").offset();
$("#block")
.animate({
left: (offset.left - offsetBody.left)
}, 200);
});
答
Jquery是一个客户端脚本。当您重新加载页面或导航到新页面时,您会向服务器请求信息,这意味着所有客户端数据都会丢失。
然而,根据你的确切问题,会有一些解决方案。
如果你只在每个页面上的块单独随后的位置有兴趣,你可以编写在标记了一些元素有相同的东西的属性值,如果DOM在加载时检查该值并相应地移动块。
您可以使用客户端cookie来存储值,并且在加载DOM时检查此变量并相应地为该块设置动画。
你可以使用AJAX调用设置服务器端变量在PHP和使用该变量在1
动态创建的元素是否有任何这三种解决方案的工作,你觉得呢?如果你能更准确地告诉我你想如何实现这一目标,我可以进一步细化。
对于方法1
使用的JQuery .attr()方法使得;
标记
<meta name="description" content="home" />
JQuery的
var page = $('meta[name=description]').attr("content");
if (page == "home") {
// you know where it should be
} else if (page == "account") {
// you know where it should be
}
不过我有点担心这不正是你想要的功能,是吗?
对于方法3
标记
<?php
session_start();
$pos = $_SESSION['position'];
echo '<meta name="description" content="' . $pos . '" />'
?>
JQuery的
var position;
// perform animation stuff and store position in the variable
// make a post() request after the position has changed
$.post("position.php", { pos: position });
PHP位置。php
<?php
session_start();
$_SESSION['position'] = $_POST['pos'];
?>
答
可以存储在下列对象的位置。 1.本地存储(浏览器支持) 在现代浏览器中,您可以将位置存储在Localstorage中。 优点:快速,用户友好。缺点:你需要处理跨浏览器。 2.服务器端。 否则,您需要将它存储在serverside() 优点:不需要考虑浏览器。缺点:你需要关注网络延迟。 3.饼干。
解决方案1似乎适合我,我不想依赖cookie,因为它经常在工作场所被阻塞。如果你可以给我一些代码示例,那么我应该可以修改它为我的网站。即时通讯非常感谢 – Vindfrisk 2012-01-13 02:35:41
林不知道你的解决方案是否会让我到最后。我使用iframe工作,但我宁愿不使用iframe,因为它会给我很多其他问题。看看这里[链接](http://vindfrisk.se/test2/)看看我在找什么。 – Vindfrisk 2012-01-13 03:39:24
可否请你试着准确定义你所需要的功能,最简单的模型可能我不确定我完全得到你的目标。你的链接显示一个似乎破碎的页面?!我的糟糕的是它是我的测试页。 – Neilos 2012-01-13 03:51:04