著編程的普及,越來(lái)越多的人開(kāi)始參與到代碼的編寫當(dāng)中。很多時(shí)候,你并需要很多專業(yè)知識(shí),你就可以寫出非常出色軟件,而這一切都得益于很多低代碼編程工具,這些拖拽工具可以非常方便地讓你生成頁(yè)面,甚至是獲取數(shù)據(jù)。接下來(lái)我們就來(lái)盤點(diǎn)一下可視化代碼生成工具。
一款非常出色的代碼拖拽生成工具,它有著豐富的模板庫(kù),對(duì)于初學(xué)者來(lái)說(shuō),你可以從眾多優(yōu)秀的模板庫(kù)中選擇一款來(lái)開(kāi)始自己的網(wǎng)頁(yè)設(shè)計(jì)之旅。
Wix支持對(duì)SEO的優(yōu)化,你可以通過(guò)各種標(biāo)簽來(lái)優(yōu)化你的網(wǎng)頁(yè),可以讓你的網(wǎng)頁(yè)被搜索引擎認(rèn)可。
Wix是支持移動(dòng)端的,并且它是自適應(yīng)的,也就說(shuō)當(dāng)你設(shè)計(jì)好網(wǎng)頁(yè)的時(shí)候,你可以花費(fèi)很少的調(diào)整就生成移動(dòng)端的網(wǎng)頁(yè)。
Wix內(nèi)置豐富的特效,你可以非常方便地為網(wǎng)頁(yè)添加各種動(dòng)效,讓網(wǎng)頁(yè)看起來(lái)更活潑。
site123是一個(gè)非常簡(jiǎn)潔的網(wǎng)頁(yè)生成器,使用它你可以拖拽生成一個(gè)網(wǎng)頁(yè)。
使用site123生成一個(gè)網(wǎng)站僅僅需要三個(gè)步驟,首先,選擇網(wǎng)站的類型,然后,上傳內(nèi)容,最后,發(fā)布自己的網(wǎng)頁(yè)就完成了一個(gè)簡(jiǎn)單網(wǎng)站的制作。
site123的模板都是響應(yīng)式的,也就說(shuō)它會(huì)自動(dòng)適應(yīng)移動(dòng)端,讓你的網(wǎng)站在移動(dòng)端也有最佳的閱讀體驗(yàn),此外,site123還會(huì)自動(dòng)優(yōu)化你的網(wǎng)頁(yè),讓你的網(wǎng)頁(yè)更容易被搜索引擎所收錄。
所有的操作都是在網(wǎng)頁(yè)上完成的,不需要你下載任何軟件就可以非常方便地生成一個(gè)網(wǎng)頁(yè)。
這是一個(gè)富有創(chuàng)意的網(wǎng)頁(yè)生成器,它有著豐富的模板,有趣的是,你可以通過(guò)描述你想要的網(wǎng)站是做什么的來(lái)提供給你模板,也就是說(shuō),你告訴它你想要做一個(gè)什么樣子的網(wǎng)站,是博客,是商城,是餐館,還是服務(wù),你告訴它你想要做的內(nèi)容,它就會(huì)給你返回最佳的模板。
使用Squarespace你可以非常方便地創(chuàng)建頁(yè)面,可以非常方便地調(diào)整樣式,字體,顏色,按鈕樣式,動(dòng)效,你都可以通過(guò)點(diǎn)擊進(jìn)行選擇,可以說(shuō)自定義的功能還是很強(qiáng)大的。
當(dāng)使用 Squarespace 創(chuàng)建網(wǎng)站時(shí),你還可以獲得免費(fèi)的無(wú)限托管、頂級(jí)的安全性和可靠的資源。 你還可以通過(guò)電子郵件、實(shí)時(shí)聊天或加入實(shí)時(shí)網(wǎng)絡(luò)研討會(huì)獲得全天候的個(gè)性化支持。
一款非常小清新的網(wǎng)頁(yè)生成器,它可以使網(wǎng)頁(yè)設(shè)計(jì)變得非常簡(jiǎn)單。選擇模板,拖放新元素,更改顏色、字體、圖像等都可以輕松完成,你也可以輕松編輯所有內(nèi)容。
它對(duì)電子商務(wù)進(jìn)行了特殊的支持,使用多合一電子商務(wù)平臺(tái)來(lái)建立的商店支持在線銷售。同時(shí),你也可以讓您的產(chǎn)品在您的在線商店、Facebook、Instagram 和亞馬遜上可用。
無(wú)論是庫(kù)存、運(yùn)輸,甚至是稅收,它提供的自動(dòng)化工具都會(huì)為您完成繁重的工作。
Zyro 電子商務(wù)是所有最流行的支付方式。從 PayPal 和 Visa 到萬(wàn)事達(dá)卡等,接受來(lái)自全球各地的在線支付。
此外,它還提供了很多實(shí)用的小功能,比如名稱生成器,標(biāo)語(yǔ)生成器,圖像智能縮放,升頻,智能去背景等等。
Elementor 與此列表中的其他所有內(nèi)容不同,原因很簡(jiǎn)單: 它不是獨(dú)立的站點(diǎn)構(gòu)建器。它是一個(gè) WordPress 插件,它需要一個(gè) WordPress 站點(diǎn)才能運(yùn)行。
Elementor 允許您像完整的拖放式網(wǎng)站構(gòu)建器一樣使用 WordPress(主要用于博客和發(fā)布的內(nèi)容管理系統(tǒng))。它包括頁(yè)面模板、內(nèi)容塊和小部件。它具有響應(yīng)式的設(shè)計(jì)和令人難以置信的定制能力。
基本上,您只需將預(yù)制的小部件拖放到您的頁(yè)面上。這些小部件可以是簡(jiǎn)單的文本或圖像塊,但它們也可以是投資組合、畫廊、菜單、列表、地圖、Facebook 評(píng)論——你可以命名它。
一個(gè)在線生成h5頁(yè)面并提供頁(yè)面管理和頁(yè)面編輯的平臺(tái),用于快速制作H5頁(yè)面。用戶無(wú)需掌握復(fù)雜的編程技術(shù),通過(guò)簡(jiǎn)單拖拽、少量配置即可制作精美的頁(yè)面,可用于營(yíng)銷場(chǎng)景下的頁(yè)面制作。
它的主要技術(shù)棧是VUE,代碼在碼云上開(kāi)源。
它的主要優(yōu)點(diǎn)有:
一個(gè)開(kāi)源的網(wǎng)頁(yè)拖拽自動(dòng)生成的JavaScript庫(kù),你可以以簡(jiǎn)單拖拽的方式生成自己需要的網(wǎng)頁(yè)樣式,內(nèi)置jquery和Bootstrap,你可以拖拽相關(guān)的組件進(jìn)行網(wǎng)頁(yè)的構(gòu)建,非常的方便,而且可以實(shí)時(shí)修改代碼,功能豐富,使用簡(jiǎn)單,界面友好,特別適合一些專注于展示的網(wǎng)頁(yè)設(shè)計(jì)。
它的技術(shù)棧采用的是jquery和bootstrap,雖然jquery可能會(huì)有些落伍,但是它主要是用在頁(yè)面的拖拽布局上,不會(huì)影響網(wǎng)頁(yè)的js。
它的優(yōu)點(diǎn):
它是一款面向IT技術(shù)支持人員和專業(yè)程序員的低代碼開(kāi)發(fā)工具,可以通過(guò)組件化、可視化、模板化和向?qū)Щ榷喾N手段,快速構(gòu)建數(shù)據(jù)庫(kù)增刪改查類的Web和手機(jī)H5應(yīng)用,大幅提升開(kāi)發(fā)效率。
相對(duì)于現(xiàn)在市面上很多類似OA系統(tǒng)的、以表單和流程為核心的低代碼開(kāi)發(fā)平臺(tái),TaskBuilder 能實(shí)現(xiàn)更復(fù)雜的業(yè)務(wù)應(yīng)用,簡(jiǎn)單的功能通過(guò)向?qū)б徊揭徊讲僮骷纯蓪?shí)現(xiàn),復(fù)雜的功能可以通過(guò)編寫腳本實(shí)現(xiàn)。
和其它拖拽網(wǎng)站生成器不同的是,它并沒(méi)有提供豐富的模板,而且它設(shè)計(jì)的最初目的也不是為了制作絢麗的前端頁(yè)面,它更多地是考慮制作企業(yè)后臺(tái)管理界面,制作類似ERP,CRM,OA等流程管理系統(tǒng)。
它是免費(fèi)開(kāi)源的,代碼可以在github上進(jìn)行查看,它的技術(shù)棧采用的是JS,前端是JS,后端是nodejs,可以說(shuō)是國(guó)產(chǎn)開(kāi)源軟件中不錯(cuò)的一款產(chǎn)品。
面對(duì)各種網(wǎng)站生成器,很多人會(huì)覺(jué)得眼花繚亂,不知道選擇哪一種,其實(shí)有時(shí)間你可以下載下來(lái)體驗(yàn)一下,每個(gè)軟件花費(fèi)個(gè)半小時(shí)就能體驗(yàn)到它的精髓。
每一款軟件都有它解決的痛點(diǎn),否則就不會(huì)有這么多款類似的產(chǎn)品誕生了。
以后的開(kāi)發(fā)會(huì)分為兩種,一種是制作開(kāi)發(fā)工具的,一種是使用開(kāi)發(fā)工具的,制作開(kāi)發(fā)工具的人會(huì)要求越來(lái)越高,而使用工具的人會(huì)要求越來(lái)越低,軟件開(kāi)發(fā)不再只是程序員能做的一件事。
認(rèn)行為
什么是默認(rèn)行為:默認(rèn)行為就是瀏覽器自己觸發(fā)的事件。比如:a鏈接的跳轉(zhuǎn),form提交時(shí)的跳轉(zhuǎn),鼠標(biāo)右鍵跳轉(zhuǎn);
oncontexmenu當(dāng)點(diǎn)擊右鍵菜單的時(shí)候;
return false
阻止默認(rèn)行為
if(e.preventDefault) {
e.preventDefault();
}else {
window.event.returnValue=false;
}
事件移除。document.onmouseover=null;
拖拽事件:
onmousedown onmousemove onmouseup
拖拽思路:
1.給目標(biāo)元素添加onmousedown事件,拖拽的前提是在目標(biāo)元素按下鼠標(biāo)左鍵
2.當(dāng)onmousedown發(fā)生以后,此刻給document添加onmousemove事件,意味著此刻鼠標(biāo)在網(wǎng)頁(yè)的移動(dòng)都將改變目標(biāo)元素的位置
3.在onmousemove事件中,設(shè)定目標(biāo)元素的left和top,
公式
目標(biāo)元素的left=鼠標(biāo)的clientX – (鼠標(biāo)和元素的橫坐標(biāo)差,即offsetX)
目標(biāo)元素的top=鼠標(biāo)的clientY– (鼠標(biāo)和元素的縱坐標(biāo)差,即offsetY)
4.當(dāng)onmousedown發(fā)生以后,此刻給document添加onmouseup事件,意味著此刻鼠標(biāo)在網(wǎng)頁(yè)的任意位置松開(kāi)鼠標(biāo),都會(huì)放棄拖拽的效果
在onmouseup事件中,取消document的onmousemove事件即可。
事件觸發(fā)階段主要由于事件流:DOM0級(jí)事件處理階段和DOM2級(jí)事件處理;
DOM0級(jí)事件處理,是一種賦值方式,是被所有瀏覽器所支持的,簡(jiǎn)單易懂容易操作;
DOM2級(jí)事件處理是所有DOM節(jié)點(diǎn)中的方法,可以重復(fù)綁定,但是瀏覽器兼容存在問(wèn)題;
非IE下:(這里的事件名不帶on),第三個(gè)參數(shù)表示是在捕獲階段還是冒泡階段。可以重復(fù)綁定事件,執(zhí)行順序按照綁定順序來(lái)執(zhí)行。
oDiv.addEventListener('click',chick,false);
oDiv.removeEventListener('click',chick ,false);
IE下:
只有冒泡階段,所以沒(méi)有第三個(gè)參數(shù);(這里的事件名需要加on)
oDiv.attachEvent();
oDiv.detachEvent() ;
兼容問(wèn)題解決:
var EventUtil={
addHandler:function(DOM,EventType,fn){
if(DOM.addEventListener){
DOM.addEventListener(EventType,fn,false);
}else if(DOM.attachEvent){
DOM.attachEvent('on'+EventType,fn)
}else{
DOM['on'+EventType]=fn
}
},
removeHandler:function(DOM,EventType,fn){
if(DOM.removeEventListener){
DOM.removeEventListener(EventType,fn,false)
}else if(DOM.detachEvent){
DOM.detachEvent('on'+EventType,fn)
}else{
DOM['on'+EventType]=null;
}
}
}
寫一個(gè)完美拖拽的案例:
、HTML
<div id="div1"></div>
二、CSS
#div1{
width: 100px;
height: 100px;
background: #444;
position: absolute;
}
三、javascript
window.onload=function(){
//獲取div
var oDiv=document.getElementById('div1');
// 設(shè)置兩個(gè)變量,記錄鼠標(biāo)位置和div左側(cè)和上側(cè)的距離
var disX=0;
var disY=0;
oDiv.onmousedown=function(e){
var ev=e||window.event;
// 計(jì)算disX和disY
disX=ev.clientX-oDiv.offsetLeft;
disY=ev.clientY-oDiv.offsetTop;
// 為避免在移動(dòng)過(guò)程中,鼠標(biāo)滑出div,因此對(duì)document加onmousemove函數(shù)
document.onmousemove=function(e){
var ev=e||window.event;
// 計(jì)算div的位置,鼠標(biāo)的位置-之前記錄的距離
var l=ev.clientX-disX;
var t=ev.clientY-disY;
// 設(shè)置div的范圍,防止div出界
if (l<0) {
l=0;
}
else if(l>document.documentElement.clientWidth-oDiv.offsetWidth){
l=document.documentElement.clientWidth-oDiv.offsetWidth;
}
if (t<0) {
t=0;
}
else if(t>document.documentElement.clientHeight-oDiv.offsetHeight){
t=document.documentElement.clientHeight-oDiv.offsetHeight;
}
oDiv.style.left=l+'px';
oDiv.style.top=t+'px';
}
document.onmouseup=function(){
document.onmouseup=null;
document.onmousemove=null;
}
}
}
四、最終效果
實(shí)現(xiàn)對(duì)div的任意拖拽,大家可以將代碼復(fù)制后自行演示;
如有疑問(wèn)請(qǐng)留言,喜歡請(qǐng)收藏,看更多js內(nèi)容,可以關(guān)注。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。