javascript和jquery窗口定位方法對應表


                                                                    
位置
 javascript   
jquery
兼容性
窗口位置離屏幕左 偏移
var leftPos = (typeof window.screenLeft == "number") ? window.screenLeft : window.screenX;   瀏覽器兼容性問題可能不准確,建議用moveTo
窗口位置 離屏幕 上偏移
var topPos = (typeof window.screenTop == "number") ? window.screenTop : window.screenY;  
瀏覽器兼容性問題可能不准確,建議用moveTo
窗口定位到某位置
window.moveTo(0,0)   Opera及IE7+默認禁用,且不適用於框架
窗口定位相對位置
window.moveBy(50,50)  
Opera及IE7+默認禁用,且不適用於框架
窗口調整大小1 window.resizeTo(100,100)    
窗口調用大小2 window.resizeTBy(100,50)    
頁面視口大小         var pageWidth = window.innerWidth,
            pageHeight = window.innerHeight;   
        if (typeof pageWidth != "number"){
            if (document.compatMode == "CSS1Compat"){
                pageWidth= document.documentElement.clientWidth;
                pageHeight = document.documentElement.clientHeight;
            } else {
                pageWidth = document.body.clientWidth;
                pageHeight = document.body.clientHeight;
            }
        }
$(window).width()

$(window).height()
 
元素距頁面頂部偏移量        function getElementTop(element){
            var actualTop = element.offsetTop;
            var current = element.offsetParent;
            while (current !== null){        
                actualTop += current.offsetTop;
                current = current.offsetParent;
            }
            return actualTop;
        }
$(element).offset().top js為遞歸計算,只對可見元素有效
元素距頁面左側偏移量         function getElementLeft(element){
            var actualLeft = element.offsetLeft;
            var current = element.offsetParent;
            while (current !== null){        
                actualLeft += current.offsetLeft;
                current = current.offsetParent;
            }
            return actualLeft;
        }
$(element).offset().left
js為遞歸計算, 只對可見元素有效
元素在垂直方向上占用空間(含邊框+內邊距+滾動條) element.offsetHeight $(element).outerHeight(),  
元素在水平方向上占用空間(含邊框+內邊距+滾動條)
element.offsetWidth $(element).outerWidth(),  
元素在垂直方向上占用空間(不含邊框,滾動條只含內邊距)
element.clientHeight
$( element).height(),有區別,不含內邊距
 
元素在水平方向上占用空間(不含邊框,滾動條,只含內邊距)
element.clientWidth
$( element).width(),有區別,不含內邊距
 
在沒有滾動條時,元素內容總高度
element.scrollHeight
jquery未找到對應方法
var docHeight = Math.max(document.documentElement.scrollHeight,
document.documentElement.clientHeight);
在沒有滾動條時,元素內容總寬度
element.scrollWidth
jquery未找到對應方法 var docWidth = Math.max(document.documentElement.scrollWidth,
document.documentElement.clientWidth);
已被滾動卷去的上方像素
var top = document.body.scrollTop | document.documentElement.scrollTop;
$(document).scrollTop()
可以用此方法滾動到指定位置
已被滾動卷去的左方像素
var left = document.body.scrollLeft | document.documentElement.scrollLeft;
$(document).scrollLeft()
可以用此方法滾動到指定位置

兼容所有瀏覽器,

取得元素矩陣,返回

元素左上角坐標距

視窗口的

left,top,right,bottom值

        function getElementLeft(element){
            var actualLeft = element.offsetLeft;
            var current = element.offsetParent;
            while (current !== null){       
                actualLeft += current.offsetLeft;
                current = current.offsetParent;
            }
            return actualLeft;
        }
   
        function getElementTop(element){
            var actualTop = element.offsetTop;
            var current = element.offsetParent;
            while (current !== null){       
                actualTop += current. offsetTop;
                current = current.offsetParent;
            }
            return actualTop;
        }
   
    function getBoundingClientRect(element){
        var scrollTop = document.documentElement.scrollTop;
        var scrollLeft = document.documentElement.scrollLeft;
        if (element.getBoundingClientRect){
            if (typeof arguments.callee.offset != "number"){
                var temp = document.createElement("div");
                temp.style.cssText = "position:absolute;left:0;top:0;";
                document.body.appendChild(temp);
                arguments.callee.offset = -temp.getBoundingClientRect().top - scrollTop;
                document.body.removeChild(temp);
                temp = null;
            }
            var rect = element.getBoundingClientRect();
            var offset = arguments.callee.offset;
   
            return {
                left: rect.left + offset,
                right: rect.right + offset,
                top: rect.top + offset,
                bottom: rect.bottom + offset
            };
        } else {
            var actualLeft = getElementLeft(element);
            var actualTop = getElementTop(element);
           return {
                left: actualLeft - scrollLeft,
                right: actualLeft + element.offsetWidth - scrollLeft,
                top: actualTop - scrollTop,
                bottom: actualTop + element.offsetHeight - scrollTop
            }
        }
    }




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM