2015-03-03 100 views
1

我有一個<div>overflow: auto;和足夠的內容需要垂直滾動。是否可以僅提取可滾動div的可見內容?

有沒有一種方法,使用PLAIN JAVASCRIPT,只提取<div>中的可見內容(HTML)? (也就是說,基於當前的scollbar位置,只有屏幕上可見的東西)。注 - 容器不一定是<div>

+0

什麼是用例?這遠非簡單的任務,具體取決於期望的準確度水平 – charlietfl 2015-03-03 03:14:02

+0

如果我在容器的一側有內容列表,我希望能夠在內容列表中突出顯示當前可見的部分。我還希望能夠在另一側有一個單獨的div,列出主要div的可見內容中的任何縮寫/定義... – lithic 2015-03-03 03:18:37

+0

做一些網絡搜索有很多腳本和插件這樣做。只需要使用元素 – charlietfl 2015-03-03 03:21:24

回答

0

當然,只要你不介意應用一些position,您的容器。一旦你應用了定位,你就可以獲得子元素的offset相對於其父母的height(和width,如果需要的話),然後確定元素是否可見。

這裏有一個簡單的小提琴,我把它扔在一起只在Chrome中測試過,所以請自擔風險! ;)

http://jsfiddle.net/7nz1kfyx/

相關JS:

function isElementVisible (el, parent) { 
    return (el.offsetTop + el.clientHeight) <= (parent.clientHeight); 
} 

你可以添加額外的邏輯來返回的條件(例如,覈對元素相對於它的的offsetLeft的父,看它是否是實際上可見...)

希望這有助於!