如果要直接實(shí)現(xiàn)這種效果的話,
創(chuàng)新互聯(lián)建站是一家集網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)站頁面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)站設(shè)計(jì)公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶的網(wǎng)站頁面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場環(huán)境中,互促共生。
一個(gè)程序比較復(fù)雜,
第二個(gè)可能效果不會(huì)很理想,會(huì)出現(xiàn)很有拖拽或者運(yùn)動(dòng)中的bug!
你可以參考一下jquery ui里面的拖拽。
利用jquery ui里面的,即方便,有能有效的去除各種意料意外的情況
給你一個(gè)地址,你可以看一下參考一下
舉例如下:
!-- 引入jQuery --
script src="../../scripts/jquery.js" type="text/JavaScript"/script
script type="text/javascript"
//![CDATA[
$(function(){
var $one_li = $("ul li:eq(1)"); // 獲取ul節(jié)點(diǎn)中第二個(gè)li元素節(jié)點(diǎn)
var $two_li = $("ul li:eq(2)"); // 獲取ul節(jié)點(diǎn)中第三個(gè)li元素節(jié)點(diǎn)
$two_li.insertBefore($one_li); //移動(dòng)節(jié)點(diǎn)
});
//]]
/script
/head
body
p title="選擇你最喜歡的水果." 你最喜歡的水果是?/p
ul
li title='蘋果'蘋果/li
li title='橘子'橘子/li
li title='菠蘿'菠蘿/li
/ul
單擊是鼠標(biāo)按下,抬起(click相當(dāng)于mousedown+mouseup)
拖拽是鼠標(biāo)按下,移動(dòng),抬起(mousedown+mousemove+mouseup)
jquery實(shí)現(xiàn)拖拽很簡單的:
$(element).myDrag({????
parent:'parent',?//定義拖動(dòng)不能超出的外框,拖動(dòng)范圍????
randomPosition:true,?//初始化隨機(jī)位置????
direction:'all',?//方向????
handler:false,?//把手????
dragStart:function(x,y){},?//拖動(dòng)開始?x,y為當(dāng)前坐標(biāo)????
dragEnd:function(x,y){},?//拖動(dòng)停止?x,y為當(dāng)前坐標(biāo)????
dragMove:function(x,y){}?//拖動(dòng)進(jìn)行中?x,y為當(dāng)前坐標(biāo)????
});
具體的可以看這里:jquery.drag.js—實(shí)現(xiàn)拖拽效果的插件
有完整的在線實(shí)例演示的?。?!
[img]拖拽以及縮放需要有一個(gè)范圍,姑且管這個(gè)叫舞臺(tái)(stage)。另外,在舞臺(tái)范圍內(nèi),如何以一種簡單的方式定義拖拽項(xiàng)?可以通過給div增加一個(gè)拖拽class(例如:resize-item),拖拽項(xiàng)應(yīng)該是absolute布局,舞臺(tái)是relative/absolute布局
所以拖拽類需要有如下兩個(gè)參數(shù)
控制面板初始化的時(shí)候,應(yīng)該是隱藏的,只有點(diǎn)擊對(duì)應(yīng)的拖拽項(xiàng)的時(shí)候才出現(xiàn),并且點(diǎn)擊舞臺(tái)空白部分,需要隱藏控制面板(組織事件冒泡)
如果這篇文章對(duì)你有用,不妨點(diǎn)個(gè)贊
查看源碼