您好,
假設我要做一個動態的網頁, 需求如下, 首先呢, 先定義一個固定範圍的區塊, 接著要動態地將元素物件(例如圖片)放入該區塊(可能一開始在XML內便已定義好部分元素在區塊內), 如果空間夠大, 可以持續加入新的元素(元素個數未知). 一旦元素被加入該區塊後就必須可以被拖曳(原有的元素也要可以拖曳), 同時要能記錄該元素在該區塊的座標, 並且隨著使用者拖曳該元素而即時更新該元素座標. 若任兩元素在拖曳過程中重疊(比對座標), 必須顯示警示訊息.
請問這樣的需求用 javascript + XML 做得到嗎? 希望可以做到. 如果可以做到, 我想請問您1. 假設已經在XML定義好的元素有10個(例如10張小圖片 ), 但是user想要再加多少元素是不可知的. 這應該如何做事件的管控? 通常事件的觸發是依附著元素物件, 例如addEventListener. 抱歉, 我是個初學者, 我的想法是, 針對圖片1, 可以寫一個對應的事件處理函式來達成拖曳效果, 如p1.addEventListener; 對圖片2, 也是另外寫一個事件處理函式, p2.addEventListener. 如果有1000張圖片都要可以拖曳, 難道我必須寫1000個事件處理函式? 1000個listener和mousedown/up/move的函式? 應該不會這麼麻煩吧. 是不是有更簡便聰明的寫法? 另外, 如果圖片張數未知又該如何處理?2. javascript如何記錄下每個元素(例如圖片, 原有的加上新增的)的座標值? 並隨時依照使用者的拖曳結果更新? 最後要將座標值和元素id一起寫入資料庫或者檔案中. 如果做不到的話, 請問您有沒有更好的解決方案?! 如果XML內放的是2D向量圖形呢? 謝謝!
假設我要做一個動態的網頁, 需求如下, 首先呢, 先定義一個固定範圍的區塊, 接著要動態地將元素物件(例如圖片)放入該區塊(可能一開始在XML內便已定義好部分元素在區塊內), 如果空間夠大, 可以持續加入新的元素(元素個數未知). 一旦元素被加入該區塊後就必須可以被拖曳(原有的元素也要可以拖曳), 同時要能記錄該元素在該區塊的座標, 並且隨著使用者拖曳該元素而即時更新該元素座標. 若任兩元素在拖曳過程中重疊(比對座標), 必須顯示警示訊息.
請問這樣的需求用 javascript + XML 做得到嗎? 希望可以做到. 如果可以做到, 我想請問您1. 假設已經在XML定義好的元素有10個(例如10張小圖片 ), 但是user想要再加多少元素是不可知的. 這應該如何做事件的管控? 通常事件的觸發是依附著元素物件, 例如addEventListener. 抱歉, 我是個初學者, 我的想法是, 針對圖片1, 可以寫一個對應的事件處理函式來達成拖曳效果, 如p1.addEventListener; 對圖片2, 也是另外寫一個事件處理函式, p2.addEventListener. 如果有1000張圖片都要可以拖曳, 難道我必須寫1000個事件處理函式? 1000個listener和mousedown/up/move的函式? 應該不會這麼麻煩吧. 是不是有更簡便聰明的寫法? 另外, 如果圖片張數未知又該如何處理?2. javascript如何記錄下每個元素(例如圖片, 原有的加上新增的)的座標值? 並隨時依照使用者的拖曳結果更新? 最後要將座標值和元素id一起寫入資料庫或者檔案中. 如果做不到的話, 請問您有沒有更好的解決方案?! 如果XML內放的是2D向量圖形呢? 謝謝!
二呢! 就是你想把这些位置都保存到数据库里面去,首先我告诉你这些都不难, 但是你必须有一定的javascript基础,熟悉dom操作!
只要你有点技术基础!这些东西怎么玩怎么成! 方法多的很!你整篇文章不提技术,只体提思路,我也没法给你进行技术交流!我就跟你说说思路,
你说的每张图片都要加函数,这不麻烦, 你图片一近来,就用一个函数对这个图片处理就好了, 只写一个函数,就可以给任何一张图片加上拖拽的动作,比如:function drag(obj){
obj.onmousedown=.....
obj.onmouseup=.....
obj.onclick=.....
}写这么个函数,图片一加近来,就先这么处理:
drag(这张图片);
这就搞定了~
当然你要是用一些框架就更好了,比如现在"臭名昭著"的jquery就有一个live()方法;
他这个更方便,你连"drag(这张图片);"这个都可以省掉了~只要是图片,符合要求,不管是你一开始就有的,还是后来加进来的,他就有你自定义的所有事件函数!第二个问题!你想保存到数据库,这也很简单,涉及到的数据量也不大,比如,你只需要用javascript从现在的页面中记录这些信息:图片的地址,图片的横坐标,纵坐标!把这三个信息保存到数据库就可以了! 可以用多维数组,我是这么认为的,谁有更好的办法也可以告诉我,要是我的话我就这么多
[[图片url地址,横坐标,纵坐标],[图片url地址,横坐标,纵坐标],[图片url地址,横坐标,纵坐标],[图片url地址,横坐标,纵坐标]]
这样记录所有的图片,下次访问的时候就可以遍历这个数组,来布局出先前保存的页面的样子!! OK?当然这是是我的思路~要实现的话要写大量的代码~
http://school.itzcn.com/special-spid-28.html
上面讲解的比较详细,希望对楼主有所帮助。
如果做不到的话, 请问您有没有更好的解决方案?! 如果XML内放的是2D向量图形呢? 谢谢!
设对象A并有自己的显示区域
设对象B并有自己的显示区域
对象A有append(B)方法添加 B对象 同时为每个添加的B对象编写控制事件(包括拖动事件)
因为A,B都代表一个显示区域,所以A,B可以是同一个对象 或者扩展自一个父对象 2)如上 所有信息应该包含于上面的B对象中 移动的只是B对象 所以要记录的只是B可能有的坐标