2011-10-14 29 views
7

Tôi đang viết một thanh cuộn tùy chỉnh và đang bắt sự kiện con lăn chuột. Tôi đang sử dụng điều này để điều chỉnh scrollTop của phần tử mà tôi muốn cuộn lên.Có bao nhiêu điểm ảnh được cuộn trên trang web có sự kiện bánh xe lăn xuống?

Có số lượng pixel tiêu chuẩn được cuộn xuống hoặc có thay đổi từ hệ thống sang hệ thống không?

Tôi thấy 114px trong phiên bản mới nhất của Firefox:

enter image description here

+0

có http://mootools.net/forge/p/scrollspy và http://twitter.github.com/bootstrap/javascript. html # scrollspy – CamelCamelCamel

Trả lời

9

Nhiều lái xe chuột cho phép bạn đặt khoảng cách cuộn bằng bánh xe chuột, do đó không phải là một khoảng cách tiêu chuẩn. Tôi sẽ thử mã của bạn trong một thời gian và chọn một khoảng cách mà giữ cho bạn khỏi di chuyển cả ngày nhưng không nhảy một dặm tại mỗi cuộn. Bạn sẽ cần phải "cảm nhận" nó. Nhờ bạn bè đưa ra phản hồi, nó giúp cho một vài tay chạm vào loại điều này.

+0

Tôi không nghĩ rằng trình điều khiển chuột tự chịu trách nhiệm về "khoảng cách được cuộn bởi bánh xe chuột". Mỗi sự kiện bánh xe chuột báo cáo một số góc quay bánh xe. Bản dịch của 'WM_MOUSEWHEEL' thành' WM_VSCROLL' là một hàm của hệ thống con GUI trên đầu trình điều khiển. –

+0

Tôi nghĩ @Kirk đang cố gắng xác định khoảng cách để di chuyển theo pixel, không phải cách xa bánh xe được quay. –

1

Bạn sẽ cần lưu trữ vị trí cuộn hiện tại trước khi cuộn và sau đó khi bạn phát hiện một cuộn có được khoảng cách mà tôi nghĩ.

0

Chúng tôi có thể kiểm soát bằng javascript. Tham khảo liên kết bên dưới. Tôi hy vọng nó sẽ giúp bạn.

http://deepport.net/archives/javascript-scrolling/

+0

Có vẻ như bạn đã đặt giá trị này là 5px * giá trị delta từ sự kiện con lăn ở đó. –

2

Đối với Firefox, bạn có sự kiện MozMousePixelScroll, mà báo cáo số lượng pixel mà nên được cuộn trong e.detail.

window.addEventListener('MozMousePixelScroll', function(e) { 
    console.log(e.detail); 
}); 

Đối với nhiều trình duyệt khác, bạn có sự kiện mousewheel rằng báo cáo e.wheelDeltaY, nhưng chúng không phải bằng pixel và bạn sẽ phải đoán số tiền được cuộn.

Đồng thời xem cách SproutCore handle di chuyển trong khuôn khổ riêng của họ (họ đang viết xem di chuyển của mình quá): http://blog.sproutcore.com/scrolling-in-sproutcore/

0

Thông thường mỗi bánh xe chuột "đánh dấu" tương ứng với một số cấu hình (bằng cách sử dụng) số pixel.

Trong Windows ví dụ khoảng cách được cuộn bởi mỗi nhấp chuột bánh xe chuột phải là hàm của tham số SystemParametersInfo(SPI_GETWHEELSCROLLLINES, ...).

Here bạn có thể tìm thêm thông tin về chủ đề này.

2

Tôi đã lưu ý rằng trong Google Chrome - đó là 100px mỗi cuộn chuột

+0

53px trên PC của tôi, cũng với Chrome (Ubuntu 12.04 LTS). – Ajedi32

+0

53px ở đây nữa (Ubuntu 14.04). – joeytwiddle

Các vấn đề liên quan