幾天用js實現了鼠標拖動div的功能,但是用起來不是那么便捷,于是想著把這個功能做成一個組件,使用的時候直接引入,不用再寫那么多冗余代碼了。
js組件的基本寫法和div拖動的邏輯就不再贅述了,前面文章已經說過了,可點擊下面鏈接查看
js實現div可拖動
js組件的基本寫法
在這里主要分析下怎么限制拖動的范圍,先看下圖:
限制范圍
拖動時有四種邊緣情況,即圖中的1、2、3、4,我們一一來看
理論知識弄明白了,我們先看下實現的效果吧
有范圍的拖動
html中引入組件,并初始化
html中引入組件
具體的js組件實現
js拖動組件1
js拖動組件2
演示地址: https://sortablejs.github.io/Sortable/
Github:https://github.com/SortableJS/Sortable
SortableJS是一款用于在現代瀏覽器和觸摸設備上的拖拽插件,不需要jQuery,但支持jQuery,支持Meteor,AngularJS,React,Polymer,Vue,Knockout和任何CSS庫,例如Bootstrap。
通過npm
npm install sortablejs --save
通過bower
bower install --save sortablejs
<ul id="items"> <li>item 1</li> <li>item 2</li> <li>item 3</li> </ul> var el=document.getElementById('items'); var sortable=Sortable.create(el);
備注:不僅僅是可以使用ul/li,比如div等
根據官網文檔簡單介紹下:
string:命名,個人建議用元素id就行,用處是為了設置可以拖放容器時使用 array:[name,pull,put] name:同string的方法, pull:pull用來定義從這個列表容器移動出去的設置,true/false/'clone'/function true:列表容器內的列表單元可以被移出; false:列表容器內的列表單元不可以被移出; 'clone':列表單元移出,移動的為該元素的副本; function:用來進行pull的函數判斷,可以進行復雜邏輯,在函數中return false/true來判斷是否移出; put:put用來定義往這個列表容器放置列表單元的的設置,true/false/['foo','bar']/function true:列表容器可以從其他列表容器內放入列表單元; false:與true相反; ['foo','bar']:這個可以是一個字符串或者是字符串的數組,代表的是group配置項里定義的name值; function:用來進行put的函數判斷,可以進行復雜邏輯,在函數中return false/true來判斷是否放入;
move 事件對象:
獲取或設置選項
對于集合中的每個元素,通過測試元素本身并遍歷DOM樹中的祖先來獲取與選擇器匹配的第一個元素
序列化可排序的列表單元的data-id(可通過配置項中dataIdAttr修改)放入一個數組,并返回這個數組中
通過自定義列表單元的data-id的數組對列表單元進行排序
保存當前排序
完全銷毀可拖拽功能
SortableJS在某些場景下非常有用,它是一個很好用的前端拖拽解決方案,合理的使用將會帶來某些意想不到的驚喜,比如讓某些不可拖拽模態框,變成可拖拽模態(沒有實踐過),喜歡折騰的小伙伴可以收藏學習了,本人翻譯功底實在有限,如果對你有幫助,請點個關注吧!謝謝!
css鏈接
鏈接可以使用任何css屬性(例如,color,font-family,background等)來設置樣式.
另外,鏈接的樣式可以不同,具體取決于所處的狀態.以下偽選擇器可用:
a:link 定義正常的為訪問鏈接的樣式
a:visited 定義訪問鏈接的樣式
a:active 一旦點擊鏈接,鏈接就會激活
a:hover 當鼠標懸停時,鏈接的樣式
下面的例子,創建一個鏈接,當鼠標移動到它上面的時候會改變樣式
html代碼:
<p><a target="_blank">搜狗</a></p>
css代碼:
a:hover{ color:red; }
執行結果如下:
這是鼠標移動到鏈接上時,顯示的樣式
當為鏈接設置樣式時,必須遵守以下規則:
a:hover 必須在a:link和a:visited之后
a:active 必須在a:hover之后
默認情況下,文本鏈接由瀏覽器加下劃線.
處理帶鏈接的文本,css最常見的用法之一是刪除下劃線.在下面的示例中,text-decoration屬性用于刪除下劃線.
html代碼:
<p><a class="text-decoration" href="https:www.sougou.com">我的下劃線已經被刪除了!</a></p>
css代碼:
a.text-decoration:link{text-decoration:none;}
效果如下:
以下屬性用于控制鏈接的樣式:
border:none 從包含鏈接的圖像中刪除邊框
outline:none 刪除IE中點擊鏈接行上的虛線邊框
二 css自定義鼠標光標樣式
css允許你將鼠標懸停在元素上時,設置所需的光標樣式.例如,你可以將光標更改為手形圖標,幫助圖標等.而不是默認的指針.
在下面的例子中,當我們將鼠標移動到span元素上時,鼠標指針被設置為一個幫助圖標.(cursor就是光標的意思)
<span style="cursor:help;">需要幫忙么?</span>
效果如下:
cursor屬性還有許多其他的值.例如:
default:默認光標
crosshair:光標顯示為十字準線
pointer:光標顯示為手形圖標
cursor的值比較多,用圖片顯示給大家:
通常改變鼠標光標的外觀,是為了提高網站訪問者的體驗.但是,選擇錯誤的光標風格也可能會引起誤解.
*請認真填寫需求信息,我們會在24小時內與您取得聯系。