Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   где определяется pageYOffset (https://javascript.ru/forum/css-html/49501-gde-opredelyaetsya-pageyoffset.html)

serrrgggeee 15.08.2014 18:45

где определяется pageYOffset
 
Здравствуйте вот есть функция
function getScrollTop(){ ///  verifica el calculo total en pixeles de toda la pagina

    if(typeof pageYOffset!= 'undefined'){
        //most browsers
        return pageYOffset;
    }
    else{
        var B= document.body; //IE 'quirks'
        var D= document.documentElement; //IE with doctype
        D= (D.clientHeight)? D: B;
        return D.scrollTop;
    }
}

Не могу понять ее логику. Как я понимаю если тип typeof pageYOffset не undefined то выполняется return pageYOffset; то есть она же и возвращается, мне не понятно как используется pageYOffset, как я понимаю она определяется в http://test.tel600615.ru/js/jquery-1.11.1.js, но единственное место где я вижу операции с этой переменной это здесь
offset: function( options ) {
		if ( arguments.length ) {
			return options === undefined ?
				this :
				this.each(function( i ) {
					jQuery.offset.setOffset( this, options, i );
				});
		}

		var docElem, win,
			box = { top: 0, left: 0 },
			elem = this[ 0 ],
			doc = elem && elem.ownerDocument;

		if ( !doc ) {
			return;
		}

		docElem = doc.documentElement;

		// Make sure it's not a disconnected DOM node
		if ( !jQuery.contains( docElem, elem ) ) {
			return box;
		}

		// If we don't have gBCR, just use 0,0 rather than error
		// BlackBerry 5, iOS 3 (original iPhone)
		if ( typeof elem.getBoundingClientRect !== strundefined ) {
			box = elem.getBoundingClientRect();
		}
		win = getWindow( doc );
		return {
			top: box.top  + ( win.pageYOffset || docElem.scrollTop )  - ( docElem.clientTop  || 0 ),
			left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
		};
	},

но здесь она тоже просто используется, а где она определена непонятно, объясните, как это происходит.

ixth 16.08.2014 00:29

window.pageYOffset — это свойство браузера. https://developer.mozilla.org/en-US/...Window.scrollY
В старых браузерах этого свойства, по-видимому, нет. Кстати, в той же статье указан более адекватный код:

var y = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;


Часовой пояс GMT +3, время: 06:30.