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