2012-11-09 33 views
5

Tôi đang cố gắng điều khiển vị trí của phần tử, do đó, giữa vị trí cuộn trang nhất định, css của anh ấy đã thay đổi. Hãy xem ví dụ đơn giản này: http://jsfiddle.net/6RtTX/8/

Vấn đề là - $(window).scroll không chính xác, vì vậy nếu tôi cuộn rất nhanh, nó trở nên thực sự lộn xộn.

Có cách nào để giải quyết vấn đề này không? Tôi có thể xếp hàng các hoạt động đó bằng phương thức $ (window) .scroll không?

Xin cảm ơn trước.

+0

Debounce it - sự kiện di chuyển cháy khá thường xuyên. – Bergi

+0

đã thử rằng - không giúp đỡ, debounce chỉ bỏ qua các cuộc gọi phương thức giữa các khoảng thời gian – LorDex

+3

Đối với điều đơn giản này, bạn chỉ cần đặt 'vị trí: cố định' khi chế độ xem cuộn nằm trong vùng bên phải – Bergi

Trả lời

0

thử thay đổi mã của fiddle bạn như thế này:

$(window).scroll(function(event) { 
    if (event.pageY > 100 && event.pageY < 5000) { 
     $('.test').css({ 
      'left' : $(window).scrollTop() - 80, 
      'top' : $(window).scrollTop() + 100 
     });    
    } 
}); 

Bằng việc sử dụng sự kiện thông qua để có được các số đo thay vì đo một lần nữa, tôi thấy rằng độ chính xác được cải thiện đáng kể.

+0

Nó không hoạt động đối với tôi, bạn đang sử dụng phiên bản jQuery nào? – neoDev

+0

Im sử dụng 1.8.3, nhưng điều này thực sự nên làm việc với bất kỳ phiên bản jQuery nào. – katzenhut

+0

Không chắc chắn vì hôm qua tôi nhận thấy rằng các phiên bản jQ gần đây không có 'event.pageY' – neoDev

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