[英]Showing Div ID on Scroll
我有這個JS代碼,在彈出框中滾動時顯示div的id值。 當id如下所示時,它可以正常工作:id =“ 1”。 但是,如何更改它以檢測如下所示的ID:id =“ 1:1”或id =“ 23:4”? 用冒號分隔的兩個數字。
<div id="sayverse"></div>
<div id="1">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque et facilisis elit. Ut interdum, odio et aliquam tempor, felis odio auctor erat, eget elementum lectus arcu tempus elit.</div>
<div id="2">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque et facilisis elit. Ut interdum, odio et aliquam tempor, felis odio auctor erat, eget elementum lectus arcu tempus elit.</div>
function findPosition( oElement ) {
if( typeof( oElement.offsetParent ) != 'undefined' ) {
for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) {
posX += oElement.offsetLeft; posY += oElement.offsetTop; }
return [ posX, posY ];
} else {
return [ oElement.x, oElement.y ];
}
}
function functionThatSetsPosition() {
var scrolledFromTop = getScrollXY()[1];
var topposition, lastone, offsetFromTop, currentverse, firstVerse = 1;
while(!document.getElementById('vs'+firstVerse) && firstVerse < 10000) {
firstVerse++;
}
for(var i = firstVerse, onediv; onediv = document.getElementById('vs'+i); i++) {
topposition = findPosition(onediv)[1];
offsetFromTop = topposition - scrolledFromTop;
if( i == firstVerse && offsetFromTop >= 0 ) {
currentverse = i;
break;
}
if( offsetFromTop >= 0 && offsetFromTop <= 20 ) {
currentverse = i;
break;
}
if( offsetFromTop > 20 ) {
currentverse = lastone;
break;
}
//store this as the last one for checking afterwards
lastone = i;
}
if( !currentverse ) {
currentverse = lastone;
}
document.getElementById('sayverse').innerHTML = 'Verse '+currentverse;
}
菲利浦
我假設您正在嘗試檢測元素的位置以確定第二個值(:之后的數字)。
如果第二個數字是名為offsetFromTop的變量,則可以這樣添加它:
document.getElementById('sayverse').innerHTML = 'Verse ' + currentverse + ':' + offsetFromTop;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.