我目前正在試圖弄清楚如何獲得溢出x:滾動容器內的div的可見性的百分比。我還需要知道它是來自右邊還是來自左邊?這可能以某種方式嗎?是否可以在「overflow-x:scroll」div容器內證明div的可見性元素?
2
A
回答
0
這可能是有用的。您可以編輯該問題答案中的代碼,以檢查元素是從左側還是右側滾動。
Check if element is visible after scrolling
要計算visable你只需要對孩子的大小與父代的大小和「左」的孩子的偏移量是什麼比例。
(我想補充後的代碼實例)
編輯
我做了一個小例子,告訴你如何可以檢測內部的「溢出-X:滾動」那個孩子的可見率div容器和如果孩子來自左側或右側。
<style>
#parent {
overflow-x:scroll;
width: 300px;
height:120px;
border: solid 1px #000;
}
#child {
width: 200px;
height: 100px;
background:#FF0;
margin-left: 200px;
}
#scrollPane {
width: 800px;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#button").click(function(){
alert(percantageVisible() + "% of the child is visible");
});
});
function percantageVisible()
{
var parent = $("#parent");
var parentLeftOffset = parent.offset().left;
var parentRightOffset = parentLeftOffset + parent.width();
var child = $("#child");
var childLeftOffset = child.offset().left;
var childRightOffset = childLeftOffset + child.width();
if(childLeftOffset < parentLeftOffset && childRightOffset > parentLeftOffset && childRightOffset < parentRightOffset){
// percentage from the left
var width = child.width();
var hiddenWidth = Math.abs(childLeftOffset - parentLeftOffset);
var visibleWidth = width - hiddenWidth;
return visibleWidth/(width/100);
}
else if(childRightOffset > parentRightOffset && childLeftOffset < parentRightOffset && childLeftOffset > parentLeftOffset){
// percentage from the right
var width = child.width();
var hiddenWidth = Math.abs(parentRightOffset -childRightOffset);
var visibleWidth = width - hiddenWidth;
return visibleWidth/(width/100);
}
else if (childLeftOffset > parentLeftOffset && childRightOffset < parentRightOffset){
// all visible
return 100;
}
else{
// invisible
return 0;
}
}
</script>
<div id="parent">
<div id="scrollPane">
<div id="child"> </div>
</div>
</div>
<button id="button">check percentage</button>
希望這有助於
+0
太棒了,謝謝。 –
+0
@SebastianBoldt如果你不介意檢查問題的答案;) – akalucas
相關問題
- 1. 是否有可能使透明div的內容完全可見?
- 2. 是否可以僅提取可滾動div的可見內容?
- 3. 檢查元素是否可見div
- 4. 包含CSS內容的div,僞元素不可見後
- 5. 屏幕閱讀器是否可以在DIV元素中「鎖定」?
- 6. 使元素在溢出中可見div
- 7. 停止一個div向上滑動元素是否可見
- 8. 是否可以在extjs面板中顯示div的內容?
- 9. 內容不可見,div伸展
- 10. 元素是否可見?
- 11. 切換div的可見性
- 12. 改變div的可見性
- 13. 是否有可能在svg元素內附加一個div
- 14. 溢出y影響容器內元素的可見性
- 15. div或任何html元素可見性是否影響「mouseenter」函數?
- 16. div元素在調整可見性時閃爍
- 17. 是否可以擴大沒有內容的div的高度?
- 18. 檢查DIV內是否存在元素
- 19. 根據內容的不同,是否可以隱藏div?
- 20. 是否可以放大和縮小div的內容?
- 21. 是否可以通過函數調用重畫DIV的內容?
- 22. 。可見-XS內部DIV
- 23. 是否可以更改div元素的類名稱
- 24. 是否可以針對一個div的兩個相鄰元素
- 25. CSS DIV是不可見的
- 26. onClick切換和切換div元素的可見性
- 27. 在內容可編輯div
- 28. 檢查div是否可見與jQuery
- 29. jQuery - 檢查子div是否可見
- 30. 驗證FORM中的DIV(可見嚮導步驟)內的HTML輸入元素?
,我不認爲這是在CSS或jQuery的任何機制。你將不得不應用自己的數學。你可以找到像這樣的高度 - 「父容器高度 - 內容高度」。 – Ashwin