我正在尝试构建一个具有自定义功能的仪表板,例如调整不同的<div>
,拖放不同的<div>
,添加不同的<div>
,从而记住位置<div>
正在被安置。此信息中心类似于iGoogle's Dashboard。
问题1)如果我没错,这些<div>
被称为小部件。是吗?
我已经浏览了网络,并找到了大部分教程/链接,用于从一些外部源继承已经构建的小部件到您的网页,但这不是我想要的。我想构建自己的小部件(例如: - 在饼图中表示一些JSON数据可以是一个小部件,在条形图中表示相同的数据可以是另一个)。所以,我的下一个问题是: -
问题2)我将有一个单独的网址,让用户根据自己的需要选择小部件。那么,我是否会在初始时隐藏每个窗口小部件的<div>
并在用户启用它们时取消隐藏它们,或者是否有其他方法可以执行此操作?
PS:肯定还有其他一些方法,因为在浏览iGoogle的源代码后,他们会在用户启用该小部件后添加它。那怎么办?
问题3)如何保存<div>
的展示位置?
答案 0 :(得分:1)
问题1) 是的,它们可以称为小部件。相当多的Javascript框架,例如jQuery UI,包括移动元素,将它们捕捉到网格等功能 - http://jqueryui.com/draggable/#snap-to
问题2) 我只会根据用户选择/允许看到的内容加载小部件,否则所有小部件都会在页面上,只是隐藏 - 用户可以取消隐藏这些小部件,允许他们查看他们可能无法访问的内容。
您可以通过多种不同方式将小部件加载到页面上。一种方法是通过服务器端(PHP等)找出用户在页面加载时选择的小部件,并在用户看到页面之前加载这些小部件。或者通过允许您加载页面的Ajax,然后可以将小部件添加到页面中 - 如果您想要将小部件设置到页面上,或者如果小部件上有大量数据可能会有用,这可能很有用意味着加载需要一段时间。
问题3) 使用我在Q1中的示例,您可以在用户删除div时捕获X,Y坐标,并使用Ajax将其触发到服务器,然后将这些坐标存储在该用户的窗口小部件中。当用户下次加载页面时,您可以使用这些坐标将窗口小部件加载到正确的位置。