2011-12-12 93 views
0

我試圖用xuijs在div上創建拖動效果。 我真的不知道要看哪個事件聽,也不知道如何處理它以使其滑動。使用XUI移動DIV

我需要它跟隨鼠標的光標(僅在X軸移動)

繼承人的什麼IM通常要做

<div id="parent" style="width: 100px; height: 20px;"> 
    <div id="slideMe" style="width: 50px; height: 20px;"> 
    </div> 
</div> 

如果點擊slideMe一個例子,拖累,它應該從一端移動到另一端(上面的HTML僅僅是一個例子,當然不完全正確)

任何人都有一個大致的想法如何實現這一點?

回答

1

您可以將Even Listener添加到鼠標以捕獲mousemove。

window.addEventListener('mousemove', mouseMove, false); 

然後你可以移動你的div與mouseMove功能。你可以讓你的遊標休息一下。

function mouseMove(e) { 
    if (IE) { 
     Xcord = event.clientX + document.body.scrollLeft; 
     Ycord = event.clientY + document.body.scrollTop; 
    } else { 
     Xcord = e.pageX; 
     Ycord = e.pageY; 
    } 

    if (Xcord < 0) Xcord = 0; 
    if (Ycord < 0) Ycord = 0; 

    document.getElementById('slideMe').style.top = Ycord + 'px'; 
    document.getElementById('slideMe').style.left = Xcord + 'px'; 

    return true 
    } 

但在這之前,你需要設置你的div風格類似下面

#slideMe{ 
    position:absolute; 
} 

編輯:這些功能使格休耕光標。但是你想用另一個div來移動它,並且是正確的。然後你需要像下面那樣更改這些代碼。

風格:

#slideMe{ 
    position:relative; 
} 

功能:

function mouseMove(e) { 
    if (IE) { 
     Xcord = event.clientX + document.body.scrollLeft; 
     Ycord = event.clientY + document.body.scrollTop; 
    } else { 
     Xcord = e.pageX; 
     Ycord = e.pageY; 
    } 

    if (Xcord < 0) Xcord = 0; 
    if (Ycord < 0) Ycord = 0; 

    //document.getElementById('slideMe').style.top = Ycord + 'px'; 
    document.getElementById('slideMe').style.left = Xcord + 'px'; 

    return true 
    } 
+0

我喜歡的答案,我可以看到它的工作,但我需要調整了很多,使其工作,我需要它太路。目前,當我滑鼠移動時,slideMe向屏幕右側射擊,它基本上是做'left:currentX + pageX'。當我將它移到父項中時,我也只需要遵循鼠標。如果我沒有太大意義,我很抱歉。我盡我所能清楚,我可以:-) –

+0

我想通了,我所要做的就是將eventListener設置爲父。然後做Xcord = x.pageX - parent.offsetLeft。謝謝您的幫助! –