如何使用javascript移动图像元素以及如何使其保持不变

如何使用javascript移动图像元素以及如何使其保持不变,javascript,element,Javascript,Element,使用javascript,我希望单击一个链接,然后让javascript将图像元素移动到某个位置。我面临的唯一问题是图像元素不会停留在那里,这是为什么 javascript示例: function move( e ) { var clickedLink = e.target; // getting location of clicked link. clickedLink.style.left = "200px"; clickedLink.style.

使用javascript,我希望单击一个链接,然后让javascript将图像元素移动到某个位置。我面临的唯一问题是图像元素不会停留在那里,这是为什么

javascript示例:

function move( e )
{  
    var clickedLink = e.target;    
    // getting location of clicked link.
    clickedLink.style.left = "200px";
    clickedLink.style.top = "200px";
}
函数中“clickedLink”元素对象的css移到上面

#clickedLink 
{
  left: 0px;  
  position: relative;
  top: -500px;
  z-index: 10;   
}
当你说它不会“停留在那里”时,你不是在试图让它在页面刷新后停留在那里,而不保存它的新位置,是吗

更新: 要存储位置,这取决于您存储位置的原因。您可以按照其他人的建议将其存储在cookie中,但这只会将其保存给该用户,保存在该浏览器中,直到他们清除cookie为止

如果您想在不同的浏览器中与用户保持一致的更改,或使其他用户可以使用该更改。。。然后,您需要通过Ajax将更改持久化到服务器,并且必须在位置设置中加载服务器端代码,等等。

当您说它不会“停留在那里”时,您并不是想让它在页面刷新后停留在那里,而不是将其保存到某个新位置,是吗

更新: 要存储位置,这取决于您存储位置的原因。您可以按照其他人的建议将其存储在cookie中,但这只会将其保存给该用户,保存在该浏览器中,直到他们清除cookie为止


如果您想在不同的浏览器中与用户保持一致的更改,或使其他用户可以使用该更改。。。然后,您需要通过Ajax将更改持久化到服务器,并且必须在位置设置中加载服务器端代码等。

使用Javascript所做的更改不会在重新加载页面时持久化

必须使用CSS进行永久性更改,否则每次加载页面时必须使用Javascript重新移动元素

例如,您可以将客户端的首选项保存在cookie中,然后使用
窗口.onload
事件启动检查cookie的函数,并相应地更新元素

或者,您可以使用服务器端脚本生成一个额外的CSS文件,该文件在保存时根据当前用户的偏好(假设是同一用户)进行定制。然后,在加载页面时检查该文件是否存在(同样使用服务器端脚本)


主要的一点是,Javascript更改只是暂时的,因为它们只在客户端浏览器上发生一次。

使用Javascript所做的更改不会在重新加载页面时持续

必须使用CSS进行永久性更改,否则每次加载页面时必须使用Javascript重新移动元素

例如,您可以将客户端的首选项保存在cookie中,然后使用
窗口.onload
事件启动检查cookie的函数,并相应地更新元素

或者,您可以使用服务器端脚本生成一个额外的CSS文件,该文件在保存时根据当前用户的偏好(假设是同一用户)进行定制。然后,在加载页面时检查该文件是否存在(同样使用服务器端脚本)


主要的一点是,Javascript更改只是暂时的,因为它们只在客户端浏览器上发生过一次。

如果您希望在页面刷新后保持不变,则需要将其位置存储在cookie中,并在页面加载时加载

如果希望它在页面刷新后保持不变,则需要将其位置存储在cookie中,并在页面加载时加载

目标没有样式选项,只需更改为e即可

 function move( e )
{  
    var clickedLink = e.target;    
    // getting location of clicked link.
    e.style.top = "200px";
    e.style.left = "200px";

}

目标没有样式选项,只需更改为e

 function move( e )
{  
    var clickedLink = e.target;    
    // getting location of clicked link.
    e.style.top = "200px";
    e.style.left = "200px";

}


它有点笨重,但是为什么图像元素不会留在那里呢?这背后有什么一般原因吗?一般原因?你的代码是错误的。除非有代码要看,否则很难判断。发布一个示例代码片段,以便人们可以看一看并提出建议。它有点笨重,但图像元素为什么不留在那里呢?这背后有什么一般原因吗?一般原因?你的代码是错误的。除非有代码要看,否则很难判断,发布一个示例片段,以便人们可以查看并提出建议。IC,那么我如何保存它的新位置?IC,那么我如何保存它的新位置?我明白了,那么在css中,我如何传递javascript中确定的新位置值?你不能,真的,因为CSS文件存储在服务器上,Javascript不应该能够更改它。这不完全正确。您可以让JS代码发布对服务器端服务的调用,然后服务器端代码编辑CSS(或者影响从中创建CSS的内容,等等)。但是从OP的来源来看,这可能太多了。@Paul,@dave-Yep,你可以使用ajax请求在运行中完成这项任务,注意,你仍然需要重新加载页面来重新设置CSS的样式。@steve-我正在考虑一种成对的方法,在JS中进行移动,保存到服务器。客户端更改仍然有效,无需强制重新加载。或者,如果愿意,您可以随时通过JS(DOM操纵或其他方式)重新蚀刻CSS。我明白了,那么在CSS中,我如何才能将javascript中确定的新位置值传递给它?实际上,您不能,因为CSS文件存储在服务器上,javascript不应该能够更改它。这不完全正确。您可以让JS代码发布对服务器端服务的调用,然后服务器端代码编辑CSS(或者影响从中创建CSS的内容,等等)。但是从OP的来源来看,这可能太多了。@Paul,@dave-Yep,你可以使用ajax请求在运行中完成这项任务,注意,你仍然需要重新加载页面来重新设置CSS的样式。@steve-我正在考虑一种成对的方法,在JS中进行移动,保存到服务器。客户端更改仍然有效,无需强制重新加载。或者,如果愿意(DOM),也可以通过JS重新蚀刻CSS