0

我正在尝试构建一个具有可自定义功能的仪表板,例如调整不同<div>的、拖放不同<div>的、添加不同<div>的,从而记住<div>放置的位置。这个仪表板类似于iGoogle 的仪表板

问题1)如果我没记错的话,这些<div>被称为小部件。他们是吗?

我已经浏览了有关此的网络,并找到了大多数教程/链接,用于从某些外部源继承已构建的小部件到您的网页,但这不是我想要的。我想构建自己的小部件(例如:- 在饼图中表示一些 JSON 数据可以是一个小部件,而在条形图中表示相同数据可以是另一个小部件)。所以,我的下一个问题是:-

问题 2)我将有一个单独的 url 让用户根据他的需要选择小部件。那么,我<div>是否在初始时隐藏每个小部件并在用户启用它们时取消隐藏它们,还是有其他方法可以做到这一点?
PS:肯定还有其他方法,因为在浏览 iGoogle 的源代码时,他们会在用户启用该小部件后添加它。那么这是怎么做到的呢?

问题 3)如何<div>保存位置?

4

1 回答 1

1

问题 1) 是的,它们可以称为小部件。相当多的 Javascript 框架,例如 jQuery UI,包括移动元素、将它们对齐到网格等功能 - http://jqueryui.com/draggable/#snap-to

问题 2) 我只会根据用户选择/允许查看的内容加载小部件,否则所有小部件都将在页面上,只是隐藏 - 然后用户可以取消隐藏这些小部件,让他们看到他们可能没有的东西进入。

您可以通过多种不同方式将小部件加载到页面上。一种方法是通过服务器端(PHP 等)找出用户在页面加载时选择了哪些小部件,并在用户看到页面之前加载这些小部件。或者通过允许您加载页面的 Ajax,然后可以将小部件添加到页面中 - 如果您想将小部件动画到页面上,或者如果小部件上有很多数据可以意味着加载需要一段时间。

问题 3) 使用我在 Q1 中的示例,您可以在用户放下 div 时捕获 X、Y 坐标,并使用 Ajax 将这些坐标触发到服务器,然后针对该用户的小部件存储这些坐标。当用户下次加载页面时,您可以使用这些坐标将小部件加载到正确的位置。

于 2013-09-03T10:16:00.913 回答