你好,我正試圖設置在滾動div的位置。這是fiddle。其實我想滾動的div我在哪個點放置我的鼠標和滾動。點擊它工作正常。但在滾動它不起作用。獲取鼠標的位置,並設置父卷的位置滾動
這是我的jQuery代碼
$('#target').on('wheel', function(e) {
var x = e.pageX - this.offsetLeft;
$("#target1").scrollLeft(x);
$(this).html(x);
});
你好,我正試圖設置在滾動div的位置。這是fiddle。其實我想滾動的div我在哪個點放置我的鼠標和滾動。點擊它工作正常。但在滾動它不起作用。獲取鼠標的位置,並設置父卷的位置滾動
這是我的jQuery代碼
$('#target').on('wheel', function(e) {
var x = e.pageX - this.offsetLeft;
$("#target1").scrollLeft(x);
$(this).html(x);
});
在鼠標滾輪,您正在尋找我猜,你必須使用event.originalEvent
。 Mousewheel和DOMMouseScroll也需要event.originalEvent
,因爲不支持wheel事件。
使用event.originalEvent.pageX
$('#target').on('mousewheel', function(e) {
e.preventDefault();
var x = e.originalEvent.pageX - e.target.offsetLeft;
$("#target1").scrollLeft(x);
console.log(e.originalEvent.pageX, e.target.offsetLeft);
$(this).html(x);
});
$('#target').on('click', function(e) {
var x = e.pageX - this.offsetLeft;
$("#target1").scrollLeft(x);
console.log(e.pageX, this.offsetLeft);
$(this).html(x);
});
body {
padding:50px;
}
#target {
background-color:gray;
width:500px;
height:240px;
padding-top:50px;
font-size:larger;
font-weight:bold;
color:white;
}
#target1{
overflow-x: scroll;
width:300px;
height:300px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="target1">
<div id="target"></div>
</div>
你不能在滾動鼠標的當前位置,所以我創建了一個全局變量來存放它xMousePos
,檢查此琴:
var xMousePos = 0;
var yMousePos = 0;
$("#target1").scroll(function(e) {
var tg1 = $(this);
var tg = tg1.children(0);
var x = xMousePos;
//console.log("Scroll:"+xMousePos);
$(this).scrollLeft(x);
$("#target1").children(0).html(x);
});
$("#target1").mousemove(function(event) {
xMousePos = event.pageX - this.offsetLeft;
yMousePos = event.pageY - this.offsetLeft;
})
body {
padding: 50px;
}
#target {
background-color: gray;
width: 500px;
height: 240px;
padding-top: 50px;
font-size: larger;
font-weight: bold;
color: white;
}
#target1 {
overflow-x: scroll;
width: 300px;
height: 300px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="target1">
<div id="target"></div>
</div>
像你的想法,但我認爲@Yordan解決方案是最好的只使用'originalEvent'。 –
@adeel是的,我也喜歡它,我不知道'.originalEvent' –
是的,這是SO的美麗。乾杯 –
作品完美先生!讓我測試一下我的應用程序。所以這只是關於'originalEvent'。 ? –
是的,如果你試圖用'mousewheel'事件做到這一點;] –
其實我不知道,但鼠標滾輪沒有在我的應用程序工作。所以我用在車輪上。 –