我想設計一個滑塊。這是代碼。檢查控制檯日誌中的top
變量的輸出。爲什麼它是一個對象而不是價值?! http://jsfiddle.net/YtTFb/奇怪的結果加起來兩個變量
<div class="filter_opt_slider">
<div></div>
</div>
-
.filter_opt_slider{
position: relative;
width: 3px;
margin:10px;
height: 150px;
border: 1px #E0E0E0 solid;
background: #FFF;
cursor: default;
}
-
$(document).ready(function(){
$(".filter_opt_slider div").on("mousedown",function(event){
dragged=$(this);
minY=parseInt(dragged.parent().offset().top);
maxY=parseInt(dragged.parent().css("height"))+minY;
$(document).mousemove(function(event) {
if(event.pageY<=maxY && event.pageY>=minY){
top=event.pageY-minY;
console.log("minY: "+minY);
console.log("pageY: "+event.pageY);
console.log("top: "+top);
console.log("<------------->")
dragged.css({top:top})
}
});
$(document).on("mouseup",function(){
$(document).unbind("mousemove")
.unbind("mouseup");
})
})
})
我沒有看到「top」的聲明。 – Virus721
'top'是全局窗口對象的屬性 - 選擇一個不同的變量名稱。 https://developer.mozilla.org/en-US/docs/Web/API/window.top – jbabey
建議不要問題本身,而是整個邏輯 - 我不確定這是否是一種好方法實現拖放。我認爲你應該使用全局變量,比如「isMousButtonClicked」。在mousedown上將其設置爲true,並在mouseup上將其設置爲false。當你處理mousemove時,只需檢查變量是否爲真。 –