精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于自然流布局的可視化拖拽搭建平臺設計方案

開發 前端
LowCode 是高效、高性能的拖拽式低代碼開發平臺. 也是筆者最近一直在研究的方向, 對于可視化搭建平臺的實現方案筆者之前寫過很多文章, 這里帶大家探索一個新方向——基于自然流布局的可視化搭建平臺.

LowCode 是高效、高性能的拖拽式低代碼開發平臺. 也是筆者最近一直在研究的方向, 對于可視化搭建平臺的實現方案筆者之前寫過很多文章, 這里帶大家探索一個新方向——基于自然流布局的可視化搭建平臺.

在我們之前實現的 h5-dooring 搭建平臺中, 我們采用了網格布局的方式來實現拖拽生成H5頁面或者Web app, 其好處就是靈活簡單, 用戶基本沒有任何使用成本, 在前端層也能做一定的橫向擴展, 但是存在幾個缺陷:

  • 實現嵌套組件比較復雜
  • 沒有層的概念

雖然通過改造可以實現層和嵌套的問題, 最近也在努力往這個方向實現(雖然和設計初衷相駁, dooring的初衷是抹去層和嵌套的概念, 讓搭建扁平化和智能化, 所以沒有采用自由布局的方案)

但是如果一定要實現嵌套和層的功能, 有沒有另一種更簡單的方案呢? 筆者目前想到了兩種解決方案:

將智能布局改為自由布局, 即可以采用類似 react-resizable 的這種方案

基于自然流來實現, 也就是抹去定位的概念, 完全基于元素在文檔的順序, 層級和定位的選擇權交給用戶

因為第一種方案筆者在dooring的早期已經實現過一版, 最后棄用采用了網格布局, 所以說我們來探討一下第二種方案的實現.

基于自然流布局實現拖拽生成頁面

自然流布局的好處就是我們不用通過定位的方式來限定元素的位置等信息, 而是以html文檔流的方式來布局元素, 并且用戶可以靈活的設置元素的層級(layer)和偏移(transform), 接下來我們來看看簡單的實現效果.

1. demo效果

由上圖的demo我們可以發現組件在畫布中的布局完全是默認的文檔流的方式, 所以我們有更靈活的布局實現.

2. 實現思路

具體實現思路主要分以下幾個部分:

  • 組件區拖拽至畫布
  • 畫布區拖拽
  • 組件編輯器和更新機制

第一點和第三點我們在 H5-dooring中已經實現了, 感興趣的可以看我之前的文章, 我們這里重點來實現畫布區拖拽, 也是比較核心的環節.

2.1 H5拖放api基本介紹

拖放(Drag 和 drop)是 HTML5 標準的組成部分, 早已被大多數瀏覽器支持. 我們目前使用的拖放插件基本上基于 H5 拖放 API 來實現的, 其實實現第一點組件區拖拽至畫布我們完全可以用原生來實現, 這里筆者簡單來介紹以下.

首先我們來看看一個完整的拖放過程:

  • 首先要設置一個元素可拖放(比如)
  • 設計拖動的時候會發生什么(需要用到ondragstart事件 和 setData(你要傳遞的數據))
  • 放到何處,也就是目標容器(通常在目標容器上綁定ondragover和ondrop事件)

有了以上3個步驟, 我們就能實現第一點的需求, 筆者寫個簡單demo來給大家參考一下:

  1. <script type="text/javascript"
  2.   function allowDrop(ev) { 
  3.     ev.preventDefault(); 
  4.   } 
  5.  
  6.   function drag(ev){ 
  7.     ev.dataTransfer.setData("Text",ev.target.id); 
  8.   } 
  9.  
  10.   function drop(ev){ 
  11.     ev.preventDefault(); 
  12.     let data=ev.dataTransfer.getData("Text"); 
  13.     ev.target.appendChild(document.getElementById(data)); 
  14.   } 
  15. </script> 
  16.  
  17. <div id="box" ondrop="drop(event)" ondragover="allowDrop(event)"></div> 
  18. <img id="drag" src="dooring.png" draggable="true" ondragstart="drag(event)" width="336" height="69" /> 

也就是對應的我們的組件拖放區域, 如下圖所示:

2.2 畫布區拖拽布局實現

因為之前的版本我們采用了網格布局來實現智能拖拽, 由于內部定位機制采用的是絕對定位(absolute), 所以是實現層級和固定組件比較困難, 如果組件的呈現完全脫離了定位的束縛, 我們就可以實現以上的困境了. 所以這里我們調研了一種方案——拖拽排序機制.

自然流布局的規律就是默認情況下html頁面是基于dom出現的順序來排列的, 也就是我們說的堆疊.

我們可以遵循這樣的設計, 通過排序的方式改變組件的位置從而實現自然流布局的頁面搭建.

那么我們再回到上面說的布局問題, 比如說要想實現柵格化布局, 我們只需要定義一個flex容器, 將組件拖拽到容器里就好了, 這樣也就解決了嵌套的問題. 同時我們還可以設計嵌套容器的柵格數, 這樣就可以實現類似如下的效果:

拖拽排序的庫我們可以使用:

  • sortable
  • Vue.Draggable
  • react-dnd

還有很多優秀的庫, 這里就不一一舉例了.

3. 如何實現層級和嵌套

其實在上面的實現思路中我們已經解決了嵌套的問題了, 即提供拖放的容器組件, 利用筆者在上文中介紹的拖放api即可實現. 對于組件層級來說, 因為我們采用的是自然流布局, 所以我們可以輕松的設置元素的定位屬性, 比如我們提供一個定位的設置:

關于如何設計一個動態的屬性編輯器, 筆者之前文章中也就詳細的介紹, 大家可以參考:

  • 表單編輯器實現(FormEditor)

 

以上就是自然流布局的基本實現方式, 后續筆者也會在github上同步最新的成果.

 

責任編輯:武曉燕 來源: 趣談前端
相關推薦

2021-01-09 09:48:10

可視化自然流布局 LowCode

2021-11-19 08:30:39

H5-Dooring 可視化組件商店

2021-07-27 08:29:33

可視化組件商店H5-Dooring

2021-02-28 07:42:40

可視化網格線H5-Dooring

2024-03-22 08:21:48

可視化搭建平臺組件商店H5-Dooring

2020-12-29 08:04:16

可視化地圖組件日歷組件

2021-06-16 08:30:36

Dooring可視化數據源設計剖析

2021-06-16 07:05:03

安全

2023-03-16 20:46:40

可視化平臺迭代

2023-12-06 08:07:13

拖拽庫可視化

2024-02-05 13:40:00

Mathlive開源庫Web 組件

2012-08-17 11:01:52

設計方案

2019-03-13 16:09:47

VMware虛擬化服務器

2022-06-29 08:28:58

數據可視化數據可視化平臺

2022-10-14 16:25:50

數據可視化大屏搭建BI平臺

2021-07-12 17:23:47

零設計可視化引擎

2024-06-06 08:27:42

2010-02-25 15:30:47

SDRAMWindows CE

2023-04-17 07:32:41

2017-10-31 09:38:53

大數據數據可視化Python
點贊
收藏

51CTO技術棧公眾號

国产女人18毛片水18精| 天天影视色综合| 国模无码一区二区三区| 欧美r级电影| 欧美熟乱第一页| 亚洲国产高清国产精品| 中文字幕日韩国产| 欧美日韩国产高清电影| 欧美最猛性xxxxx直播| 色噜噜色狠狠狠狠狠综合色一 | 激情久久一区二区| 国产日韩欧美不卡在线| 国产精品大片wwwwww| 国产真人真事毛片视频| 国产一区二区三区免费观看在线| 一区二区成人在线视频| 久久国产精品 国产精品| 日本久久综合网| 999国产精品| 日韩精品资源二区在线| 亚洲国产成人精品无码区99| 免费人成在线观看网站| 寂寞少妇一区二区三区| 欧美精品在线观看| 欧美无人区码suv| 日韩精品一区二区三区| 日韩一区在线看| 国产成人一区二区三区免费看| 国语对白永久免费| 综合激情婷婷| 亚洲欧美精品一区| 亚欧精品在线视频| 亚洲第一图区| 国产蜜臀97一区二区三区| 国产欧美日韩免费| 国产精品theporn动漫| 欧洲乱码伦视频免费| 日韩欧美精品在线视频| 五十路熟女丰满大屁股| 四虎久久免费| 26uuu国产在线精品一区二区| 国产这里只有精品| 青草视频在线观看免费| 欧美成人高清| 日韩成人小视频| 婷婷激情小说网| 日本久久免费| 亚洲图片欧美色图| 在线免费一区| 青青草视频在线免费观看| 激情综合五月婷婷| 人人做人人澡人人爽欧美| 朝桐光av在线| 日韩成人精品一区二区| 亚洲精品久久7777777| 91网址在线观看精品| 天天免费亚洲黑人免费| 亚洲1区2区3区视频| 日本不卡一区二区三区四区| 看电影就来5566av视频在线播放| 国产精品888| 国产欧美精品一区二区| 亚洲视屏在线观看| 久久精品中文| 午夜精品蜜臀一区二区三区免费| 综合五月激情网| 久久国产亚洲精品| 亚洲成人网在线| 亚欧精品在线视频| 色噜噜成人av在线| 欧美男生操女生| 日韩av在线综合| 国产高潮在线| 精品久久久中文| 亚洲自偷自拍熟女另类| 91在线超碰| 亚洲福利一区二区| 蜜臀av性久久久久蜜臀av| 国内外激情在线| 亚洲色图制服诱惑| 午夜欧美一区二区三区免费观看| 免费一级毛片在线观看| 久久久久久久久久看片| 欧美极品视频一区二区三区| 深夜福利在线看| 97久久超碰国产精品电影| 精品欧美国产| 欧美孕妇孕交| 欧美高清在线精品一区| 亚洲精品久久久久久一区二区| 国产一区二区三区不卡在线| 欧美国产日韩亚洲一区| 亚洲综合欧美日韩| 黄色网页在线播放| 亚洲一区二区四区蜜桃| 国产午夜福利100集发布| 在线观看特色大片免费视频| 欧美优质美女网站| 中文字幕在线视频一区二区| 视频二区欧美| 日韩精品极品视频免费观看| 国产视频三区四区| 亚洲最新色图| 午夜精品蜜臀一区二区三区免费| 国语对白永久免费| 男人的天堂亚洲一区| 99视频在线| 男人的天堂在线免费视频| 最新欧美精品一区二区三区| 人妻无码久久一区二区三区免费 | 国产精品三级在线| 亚洲国产www| 国产精品久久久久影视| 无码中文字幕色专区| 小说区图片区亚洲| 日韩av网址在线观看| 老熟妻内射精品一区| 老牛嫩草一区二区三区日本| 999在线观看免费大全电视剧| 韩国中文免费在线视频| 亚洲国产精品麻豆| 久久久久久国产精品日本| 国产精品亚洲人成在99www| 欧美极品少妇xxxxⅹ裸体艺术| 伊人久久国产精品| 91视频91自| 国产乱人伦精品一区二区三区| 欧美xxxx做受欧美护士| 日韩av在线免费播放| 在线观看成人毛片| 久久机这里只有精品| 亚洲色欲色欲www| 91高跟黑色丝袜呻吟在线观看| 欧美在线一卡| 亚洲成人免费视频| 国产sm在线观看| 婷婷综合在线| 国产精品无av码在线观看| 久久天堂电影| 韩国av一区二区| 久久伊人中文字幕| 精品欧美日韩在线| 草莓视频丝瓜在线观看丝瓜18| 一区二区精品伦理... | 五月婷婷亚洲综合| 不卡的av中国片| 青春草国产视频| 久久伊人国产| 日日噜噜噜夜夜爽亚洲精品| 黄色大全在线观看| 久久综合av免费| 北条麻妃69av| 色老板在线视频一区二区| 国内精品久久影院| 日批免费在线观看| 亚洲18女电影在线观看| 黄色免费看视频| 黄色亚洲在线| 国产高清自拍一区| free性欧美| 日韩成人av网址| 五月天婷婷久久| 久久色在线视频| 精品国产成人av在线免| 精品国产91| 国产欧美日韩精品丝袜高跟鞋| 91xxx在线观看| 欧美性大战久久久| 日韩av毛片在线观看| 国产精品一区二区在线观看网站| 在线观看污视频| 国产精品白丝一区二区三区| 性欧美在线看片a免费观看| 五月色婷婷综合| 岛国av在线不卡| 精品欧美一区二区久久久| 美女精品自拍一二三四| 熟女视频一区二区三区| 日韩成人精品| 97精品一区二区三区| 日韩精品视频无播放器在线看 | 欧美韩国一区二区| 国产在线观看中文字幕| 亚洲小说欧美另类社区| 欧美日韩视频在线一区二区观看视频| 成人激情视屏| 免费97视频在线精品国自产拍| 亚洲国产日韩在线观看| 色综合久久天天综合网| 久久精品在线观看视频| 成人午夜av电影| 日韩在线第三页| 自拍视频亚洲| 欧美日韩三区四区| 欧美黄色一级| 欧美一级在线播放| 四虎久久免费| 精品香蕉一区二区三区| 国产理论片在线观看| 午夜欧美大尺度福利影院在线看| 国产黄色录像视频| www.视频一区| 浓精h攵女乱爱av| 亚洲欧洲日本一区二区三区| 亚洲免费在线精品一区| 久久男人av| 国产日韩精品入口| 手机在线观看av| 久久精品91久久香蕉加勒比| 三级视频网站在线| 制服.丝袜.亚洲.中文.综合| 无码日韩精品一区二区| 亚洲国产aⅴ天堂久久| 亚洲综合图片一区| 久久久久国产一区二区三区四区| 在线视频日韩一区| 亚洲欧洲一级| 91麻豆天美传媒在线| 精品国产视频| 国内一区二区在线视频观看| 国产日韩一区二区三免费高清| 国产精品久久久久久久久久ktv | 欧美激情电影| 国产伦一区二区三区色一情| 成人在线视频www| 国产精品美女免费看| 男人的天堂免费在线视频| 久久天天躁狠狠躁夜夜躁2014| 玖玖综合伊人| 亚洲久久久久久久久久| 空姐吹箫视频大全| 欧美一区二区在线视频| 成人一二三四区| 欧美性xxxxxx| 亚洲天堂视频网站| 午夜视频在线观看一区| 久久久久久久久艹| 一区二区三区在线免费观看| 日韩精品久久久久久久的张开腿让| 久久精品一区二区三区av| 日本五十肥熟交尾| 成人免费va视频| 无码人妻少妇色欲av一区二区| 久久99精品国产麻豆婷婷| 在线观看国产中文字幕| 日韩电影在线观看一区| 日本老熟妇毛茸茸| 久久精品日产第一区二区| 激情六月丁香婷婷| 久久综合导航| 成人一区二区三| 日韩不卡一区二区三区| 亚洲中文字幕久久精品无码喷水 | 孩娇小videos精品| 久久草av在线| 欧美精品 - 色网| 国产一二精品视频| 日本中文字幕在线不卡| 成人一级黄色片| 国产精品扒开腿做爽爽爽a片唱戏| 不卡视频在线看| 欧美熟妇一区二区| 欧美国产一区视频在线观看| 欧美性生交大片| 亚洲精品国产精品乱码不99| 精品一区二区三区人妻| 性做久久久久久| 在线观看 亚洲| 欧美网站一区二区| a网站在线观看| 精品第一国产综合精品aⅴ| 五月婷中文字幕| 中文字幕国产亚洲| a级在线观看| 久久久影视精品| 韩国成人动漫| 成人黄色片在线| av综合网页| 欧美国产二区| 999成人精品视频线3| 国产美女永久无遮挡| 老司机午夜精品视频在线观看| 日韩大片一区二区| 白白色 亚洲乱淫| 亚洲综合欧美综合| 亚洲在线一区二区三区| 无码人妻精品一区二区50| 91精品国产麻豆| 天堂av在线播放| 精品国产一区二区三区在线观看 | 亚洲成av人在线观看| 亚洲色成人www永久网站| 欧美精品一二三区| 五月婷婷丁香六月| 啊v视频在线一区二区三区| 欧美寡妇性猛交xxx免费| 日韩美女中文字幕| 日韩一区二区三区精品视频第3页| 久久精品日产第一区二区三区精品版| 日本午夜一区| 无码人妻丰满熟妇区96| 精品一区二区三区免费播放| 草草地址线路①屁屁影院成人| 国产精品国产三级国产aⅴ原创| 日韩黄色三级视频| 欧美精品一二三| 欧美理论在线观看| 欧美激情精品久久久久| 国产三级一区| 裸模一区二区三区免费| 欧美成人一品| 少妇一级淫免费播放| 97久久精品人人做人人爽| 中文字幕五月天| 欧美性xxxxxx少妇| 丝袜视频国产在线播放| 欧美日韩成人网| 国产欧美自拍| 欧美一区二区综合| 国产一区成人| 师生出轨h灌满了1v1| 一区精品在线播放| 日韩欧美国产另类| 国产偷亚洲偷欧美偷精品| 啪啪免费视频一区| 92看片淫黄大片看国产片| 欧美三级美国一级| 日韩欧美在线免费观看视频| yourporn久久国产精品| 国产精品30p| 精品国产污污免费网站入口 | 亚洲一二三级电影| 国产熟女一区二区丰满| 色婷婷久久一区二区| av亚洲一区二区三区| 免费日韩av电影| 国产欧美日本| a视频免费观看| 欧美日韩中文字幕在线| 四虎精品一区二区三区| 国内精品久久久久伊人av | 免费国产一区二区| 国产欧美综合一区二区三区| 人妻 丝袜美腿 中文字幕| 一区二区三区在线视频播放| www.日韩在线观看| 欧美激情一级精品国产| 亚洲成人黄色| 日韩精品在线中文字幕| a亚洲天堂av| 国产成人无码一区二区三区在线| 亚洲激情电影中文字幕| 欧美aaaaa性bbbbb小妇| 欧美精品久久| 久久久久久9| 丁香激情五月少妇| 一区在线免费| 不卡毛片在线看| 亚洲欧美日韩偷拍| 亚洲亚洲一区二区三区| 欧美丝袜丝交足nylons| 男女啪啪的视频| 深夜福利在线看| 成人污视频在线观看| 成人a在线观看| 一区二区三区日| 人人精品人人爱| 国产成人在线一区二区| avtt天堂在线| 婷婷亚洲五月色综合| 亚洲欧洲国产伦综合| 69久久精品无码一区二区| 日本资源在线| 91在线观看污| 国产精品久久亚洲7777| av免费在线观看不卡| 日韩av不卡一区二区| 国产在线久久久| 99久久精品国产亚洲| 亚洲一区国产| 国产99视频精品免费视频36| 成人ww免费完整版在线观看| 亚洲777理论| 五月婷婷之综合激情| 宅男网站在线免费观看| 欧美国产日韩一二三区| 精品一区二区视频| 亚洲伦理在线观看| 国产乱码一区二区三区| 亚洲aⅴ男人的天堂在线观看 | 久久精品青青大伊人av| 欧美午夜网站| 欧美视频第一区| 亚洲欧洲日韩女同| 日本韩国在线观看| 国产精品夜色7777狼人| 亚洲国产91| 老司机精品免费视频| 亚洲黄色成人网| 亚洲老司机网|