2012-02-24 40 views
9

Đây là jsfiddle: http://jsfiddle.net/NKgG9/Làm cách nào để làm mờ một div vào/ra khi cuộn trang?

Về cơ bản, tôi muốn các hộp màu hồng đó hiển thị trên trang tải như bình thường nhưng ngay sau khi người dùng cuộn xuống trang tôi muốn chúng mờ đi và biến mất. Khi người dùng cuộn trở lại vị trí của họ hoặc trên cùng của cửa sổ trình duyệt, tôi muốn những hộp màu hồng đó mờ đi trở lại. Tôi vô dụng với JS rất tốt với một số trợ giúp về cách làm điều này.

Tất cả trợ giúp đều được đánh giá cao.

+0

Bạn có muốn chúng phai vào/ra đến cấp dựa trên giá trị của cuộn hoặc chỉ để áp dụng hiệu ứng ngay khi cuộn được phát hiện? – Cheery

+0

Lý tưởng nhất, mờ dần khi di chuyển được phát hiện rồi mờ dần khi người dùng quay lại đầu cửa sổ trình duyệt – egr103

Trả lời

13

dụ Rất đơn giản: http://jsfiddle.net/a4FM9/2/

var divs = $('.social, .title'); 
$(window).scroll(function(){ 
    if($(window).scrollTop() <10){ 
     divs.stop(true,true).fadeIn("fast"); 
    } else { 
     divs.stop(true,true).fadeOut("fast"); 
    } 
});​ 
+0

Thats tuyệt vời. Chúc mừng cho @Cheery! Tôi đã nhận thấy mặc dù có một vấn đề mà các divs nhấp nháy khi bạn cố gắng cuộn lên, khi bạn đang ở trên cùng của trang. Có cách ngăn chặn điều này xảy ra không? – egr103

+0

@ egr103 thay thế 'if ($ (window) .scrollTop() == 0)' by 'if ($ (window) .scrollTop() <10)', ví dụ. 10 pixel sẽ không đóng vai trò rất quan trọng, nhưng sẽ ngăn chặn hiệu ứng như vậy. http://jsfiddle.net/a4FM9/1/ – Cheery

+0

Hoặc xem tại đây http://jsfiddle.net/a4FM9/2/ – Cheery

4

Giống như này? http://jsfiddle.net/NKgG9/6/

$(function(){ 
    var targets = $(".title, .social"); 
    if($(window).scrollTop() > 10){ 
     targets.hide(); 
    } 
    $(window).scroll(function(){ 
     var pos = $(window).scrollTop(); 
     if(pos > 10){ 
      targets.stop(true, true).fadeOut("fast"); 
     } else { 
      targets.stop(true, true).fadeIn("fast"); 
     } 
    }); 

}); 

Ý tưởng cơ bản: đăng ký sự kiện cuộn. Nếu vị trí cuộn di chuyển qua một điểm nhất định, hãy bắt đầu mờ dần và tương tự nếu người dùng cuộn lên mờ dần. Một số chi tiết quan trọng: theo dõi nếu bạn đã mờ dần vào/ra (biến được hiển thị) và dừng bất kỳ sự mờ nhạt nào đang diễn ra nếu bạn bắt đầu một phai mới.

+0

Thats tuyệt vời chúc mừng Andre! – egr103

+0

Điều này có cùng một vấn đề như giải pháp đầu tiên, trong đó khi bạn đang ở giữa trang trong Firefox và bạn làm mới trang, hai div sẽ hiển thị lại. Làm thế nào tôi có thể sửa lỗi này? – egr103

+0

Tôi đã cập nhật câu trả lời. Trong khi tôi không thể tạo lại vấn đề trong Firefox, điều này sẽ dừng lại: nếu cửa sổ ban đầu đã được cuộn, hãy ẩn các phần tử. –

0

Cảm ơn - điều này thực sự đã giúp tôi.

Ban đầu tôi muốn một giải pháp như "Scroll for More" và đã quản lý để làm như vậy với http://jsfiddle.net/a4FM9/12/ - có thể điều này hữu ích cho bất kỳ ai.

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