任何人都可以幫助我完成以下任務嗎?提前致謝!javascript如何在mousedown上不斷移動元素並停止在mouseup上移動
使用JavaScript(我不想使用JQuery),在鼠標下如何繼續移動一個元素,如果點擊id navLinkLeft,或者繼續向右移動,如果點擊id navLinkRight,則停止鼠標向上。
<nav>
<a href="#" id="navLinkLeft">Link Left</a>
<div id="navLinks">Navigation Links to Be Moved</div>
<a href="#" id="navLinkRight">Link Right</a>
</nav>
我已經添加了事件監聽器,但我不知道如何繼續移動元素。目標是在鼠標向下時繼續將id navLinks向左或向右移動,並在鼠標向上時停止。
<script>
var navLinkLeft = document.getElementById("navLinkLeft");
navLinkLeft.addEventListener("mousedown", moveLeft, false);
navLinkLeft.addEventListener("mouseup", stopMovingLeft, false);
var navLinkRight = document.getElementById("navLinkRight");
navLinkRight.addEventListener("mousedown", moveRight, false);
navLinkRight.addEventListener("mouseup", stopMovingRight, false);
function moveLeft(){
var navLinks = document.getElementById("navLinks");
var x = -50;
navLinks.style.left += x + "px";
}
function stopMovingLeft(){
}
function moveRight(){
var navLinks = document.getElementById("navLinks");
var x = +50;
navLinks.style.left += x + "px";
}
function stopMovingRight(){
}
</script>
我建議尋找到'setInterval'。當mouseup事件觸發時可以使用返回值來取消定時器。請參閱此處:http://www.w3schools.com/jsref/met_win_setinterval.asp – enhzflep 2014-10-12 00:00:58
navLinkLeft.addEventListener(「mousedown」,function(){navLinkLeft.timer = setInterval(moveLeft,100)},false); navLinkLeft.addEventListener(「mouseup」,function(){clearInterva(navLinkLeft.timer)},false); – dandavis 2014-10-12 00:00:59
您可能想要使用[事件捕獲](https://developer.mozilla.org/en-US/docs/Web/API/Element.setCapture)。 – jfriend00 2014-10-12 00:09:30