Cách nhanh nhất để kiểm tra xem một phần tử có thanh cuộn là gì?
Một điều tất nhiên là kiểm tra xem phần tử có lớn hơn khung nhìn của nó hay không, điều này có thể dễ dàng thực hiện bằng cách kiểm tra hai giá trị sau:
el.scrollHeight > el.offsetHeight || el.scrollWidth > el.offsetWidth
nhưng điều đó không có nghĩa là nó cũng có thanh cuộn (vì vậy nó thực sự có thể được cuộn bởi con người).
Câu hỏi
Làm cách nào để kiểm tra thanh cuộn trong 1 trình duyệt chéo và chỉ 2 javascript (như không có jQuery )?
Chỉ Javascript, vì tôi cần chi phí càng nhỏ càng tốt, vì tôi muốn viết một bộ lọc bộ chọn jQuery rất nhanh
// check for specific scrollbars
$(":scrollable(x/y/both)")
// check for ANY scrollbar
$(":scrollable")
Tôi cho rằng tôi phải kiểm tra overflow
cài đặt kiểu nhưng làm cách nào để thực hiện điều đó trong một trình duyệt chéo?
Chỉnh sửa bổ sung
Không chỉ overflow
cài đặt phong cách. Kiểm tra xem một phần tử có thanh cuộn hay không không phải là chuyện nhỏ. Công thức đầu tiên tôi đã viết ở trên hoạt động tốt khi phần tử không có đường viền, nhưng khi nó có (đặc biệt khi đường viền có chiều rộng đáng kể), offset
kích thước có thể lớn hơn scroll
kích thước nhưng phần tử vẫn có thể cuộn được. Chúng tôi thực sự phải trừ đường viền khỏi thứ offset
nguyên để có được khung nhìn có thể cuộn thực tế của phần tử và so sánh nó với thứ scroll
nguyên.
Để tham khảo trong tương lai
:scrollable
Bộ lọc jQuery selector được bao gồm trong .scrollintoview()
plugin jQuery của tôi . Mã hoàn chỉnh có thể được tìm thấy trong bài đăng trên blog của tôi nếu ai đó cần nó. Mặc dù nó không cung cấp giải pháp thực tế nhưng mã của Soumya đã giúp tôi giải quyết vấn đề một cách đáng kể. Nó chỉ tôi đi đúng hướng.
overflow:hidden
đặt trên đó? Sẽ có nội dung thừa nhưng nó vẫn không thể cuộn được. Vấn đề cho đến nay không đơn giản như nó có vẻ.