通過angular CDK實(shí)現(xiàn)頁(yè)面元素拖放的步驟詳解
通過導(dǎo)入@angular/cdk/drag-drop模塊我們可以輕松實(shí)現(xiàn)元素在頁(yè)面中得拖放功能,如元素在頁(yè)面中隨意拖動(dòng)、在特定區(qū)域內(nèi)拖動(dòng)亦或?qū)α斜磉M(jìn)行拖放排序等等。
CDK. The Component Dev Kit (CDK) is a set of tools that implement common interaction patterns whilst being unopinionated about their presentation. It represents an abstraction of the core functionalities found in the Angular Material library, without any styling specific to Material Design.
WEB項(xiàng)目中有些場(chǎng)景會(huì)使用元素拖動(dòng)效果,那么對(duì)于angular項(xiàng)目我們可以通過導(dǎo)入“@angular/cdk/drag-drop”模塊輕松實(shí)現(xiàn)元素自由拖動(dòng)效果。
首先我們會(huì)創(chuàng)建拖放對(duì)象,如同:
<div class="drag">拖動(dòng)元素</div>
.drag{ position:absolute; left:0; bottom:0; border:1px grey solid; width:60px; height:60px; cursor: move; z-index:1; }
然后我們?cè)谙鄳?yīng)模塊中導(dǎo)入拖動(dòng)模塊即可。
import { DragDropModule } from '@angular/cdk/drag-drop'
在頁(yè)面中,我們就可以直接使用其指令實(shí)現(xiàn)(cdDrag)。
<div class="drag" cdkDrag></div>
即可實(shí)現(xiàn)自由拖動(dòng)效果。
angular cdk drag-drop
我們可以實(shí)現(xiàn)自由拖放、列表重新排序、列表間數(shù)據(jù)傳輸、特指拖放控制、及其拖放臨界點(diǎn)控制等等。
拖動(dòng)元素內(nèi)指定拖動(dòng)控制,如:
<div class="drag" cdkDrag> <span cdkDragHandle class="dragHandle"></span> </div>
通過父級(jí) cdkDrag 與 控制子級(jí)控制元素 cdkDragHandle 對(duì)其作用。
設(shè)置拖動(dòng)臨界點(diǎn),限制在指定區(qū)域進(jìn)行自由拖動(dòng)。
如果要阻止用戶將cdkDrag元素拖動(dòng)到另一個(gè)元素之外,可以將CSS選擇器傳遞給該cdkDragBoundary屬性。該屬性通過接受選擇器并查找DOM直到找到與其匹配的元素為止。如果找到匹配項(xiàng),則將其用作不能拖動(dòng)元素的邊界。放在里面cdkDragBoundary時(shí)也可以使用。
Angular cdkDrag Y軸拖動(dòng)
如在body中拖動(dòng),禁止拖放至不可見,或通過css選擇器指定臨界點(diǎn)
<div class="drag" cdkDrag> <span cdkDragHandle cdkDragBoundary="body" class="dragHandle"></span> </div>
亦或我們可以控制僅在X軸方向或Y軸方向拖動(dòng)
<div class="drag" cdkDragLockAxis = "x" cdkDrag> <span cdkDragHandle cdkDragBoundary="body" class="dragHandle"></span> </div>
通過cdkDragLockAxis = "x" 或 cdkDragLockAxis = "y"
控制。
更多大家可以參考官方介紹,臨時(shí)使用予以筆記,僅供參考!
總結(jié)
到此這篇關(guān)于通過angular CDK實(shí)現(xiàn)頁(yè)面元素拖放的文章就介紹到這了,更多相關(guān)angular CDK頁(yè)面元素拖放內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何在AngularJs中調(diào)用第三方插件庫(kù)
在AngularJs中我們會(huì)不可避免的使用第三方庫(kù),這篇文章主要介紹了如何在AngularJs中調(diào)用第三方插件庫(kù),有興趣的可以了解下2017-05-05AngularJS基礎(chǔ) ng-keypress 指令簡(jiǎn)單示例
本文主要介紹AngularJS ng-keypress 指令,這里幫大家整理了基礎(chǔ)資料,并附是示例代碼,有需要的小伙伴可以參考下2016-08-08angularJs select綁定的model取不到值的解決方法
今天小編就為大家分享一篇angularJs select綁定的model取不到值的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10angularjs1.5 組件內(nèi)用函數(shù)向外傳值的實(shí)例
今天小編就為大家分享一篇angularjs1.5 組件內(nèi)用函數(shù)向外傳值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09angular使用TweenMax動(dòng)畫庫(kù)的問題和解決方法
這篇文章主要給大家介紹了關(guān)于angular使用TweenMax的相關(guān)問題和解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03