2015-12-14 13 views
10

Tôi muốn thêm lớp để các phần tử khi nó được nhìn thấy trên màn hình khi di chuyển:Thêm class trên yếu tố html khi nó được nhìn thấy trên màn hình

<button class='btn btn-default' > 
    Hello 
</button> 

Tôi muốn thêm lớp để 'btn-default' khi nút được nhìn thấy trên màn hình sau khi cuộn hoặc khi trang tải lại.

+0

_gets visible_? Bạn có thể giải thích nó được hiển thị như thế nào? – Rayon

+0

Ý tôi là khi nút được hiển thị trên màn hình thông qua cuộn hoặc khi trang tải lại –

+0

Ý nghĩa là gì? Tại sao bạn cần điều này? Cung cấp ví dụ sử dụng. –

Trả lời

6

Hãy thử chọn có thể nhìn thấy như trong:

$(window).on('scroll', function(){ 
     if ($(".btn").is(':visible')){ 
      $(".btn").addClass("btn-default"); 
     } 
    }); 
+0

Một phần câu trả lời của bạn là chính xác .. http://jsfiddle.net/ravimallya/mhfcwyk8/ – Ravimallya

+0

Tôi đã sửa đổi câu trả lời của mình theo @Ravimallya. Ban đầu tôi không sử dụng "khi cuộn" vì câu hỏi không nói rằng người đó cần phần tử hiển thị khi cuộn. :) –

+0

OP không thêm câu hỏi đó, nhưng trong comm ent ông đã đề cập. Vì vậy, thêm câu trả lời của riêng tôi. – Ravimallya

0

Bạn đã sử dụng jquery $(element).is(':visible') để kiểm tra xem một yếu tố có thể nhìn thấy trong một tài liệu HTML.

JSFiddle

Đây là đoạn mà nó sẽ thêm một lớp khi tài liệu sẵn sàng và khi cuộn đến phần tử.

$(function() { 
 
    if ($('#testElement').is(':visible')) { 
 
    $('#testElement').addClass('red'); 
 
    } 
 
}); 
 
$(window).on('scroll', function() { 
 
    var $elem = $('#testElement1'); 
 
    var $window = $(window); 
 

 
    var docViewTop = $window.scrollTop(); 
 
    var docViewBottom = docViewTop + $window.height(); 
 
    var elemTop = $elem.offset().top; 
 
    var elemBottom = elemTop + $elem.height(); 
 
    if (elemBottom < docViewBottom) { 
 
    alert('hi') 
 
    $('#testElement1').addClass('red'); 
 
    } 
 
});
.red { 
 
    background: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="testElement" class="btn btn-default"> 
 
    Hello 
 
</button> 
 
<div style="height:400px">Some content</div> 
 
<button id="testElement1" class="btn btn-default"> 
 
    Hi 
 
</button>

-5

Thông thường bạn có thể thêm và loại bỏ lớp bên dưới mã nhưng đầu tiên bạn thêm (bao gồm) bất kỳ jquery js phút

Add class: $('.Yourclassname').addClass('addclassname'); 

Remove Class: $('.Yourclassname').removeClass('removeclassname'); 
+0

Ý của bạn là gì? Bạn đã đọc kỹ câu hỏi chưa? –

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