zoukankan      html  css  js  c++  java
  • 获取元素在页面中的位置

    <!doctype html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>获取页面元素的位置</title>
    	<style>
    		div{padding:20px;}
    	</style>
    </head>
    <body>
    	<script>
    	//页面的实际尺寸
    		function getPagearea(){
    			if(document.compatMode == 'Backcompat'){
    				return {
    					width : Math.max(document.body.clientWidth,document.body.scrollWidth),
    					height : Math.max(document.body.clientHeight,document.body.scrollHeight)
    				}
    			}else{
    				return {
    					width : Math.max(document.documentElement.clientWidth,document.documentElement.scrollWidth),
    					height : Math.max(document.documentElement.clientHeight,document.documentElement.scrollHeight)
    				}
    			}
    		}
    		//获取元素在页面里的绝对位置
    		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;
    		}
    		// 由于在表格和iframe中,offsetParent对象未必等于父容器,所以上面的函数对于表格和iframe中的元素不适用
    		//获取元素在页面里的相对位置
    		function getElementViewLeft(){
    			var actualLeft = element.offsetLeft;
    			var current = element.offsetParent;
    			while (current !== null){
    				actualLeft += current.offsetLeft;
    				current = current.offsetParent;
    			}
    			if(document.compatMode == 'Backcompat'){
    				var elementScrollLeft = document.documentElement.scrollLeft;
    			}else{
    				var elementScrollLeft = document.body.scrollLeft;
    			}
    			return actualLeft - elementScrollLeft;
    		}
    		
    
    	</script>
    </body>
    </html>
    

      

  • 相关阅读:
    Redis学习笔记六:持久化实验(AOF,RDB)
    MySQL从源码编译安装
    Redis学习笔记五:缓存常见问题
    修复MySQL漏洞防火墙策略(CentOS7)
    Linux释放根目录空间(CentOS)
    CentOS7离线安装firewalld及端口配置
    Linux通过软链接方式对磁盘进行变相扩容
    SNMP及SNMP Trap对接指南
    Oracle安装磁盘空间满了怎么办?(Windows Server)
    无法打开OracleEnterpriseManager页面【http://localhost:1158/em】
  • 原文地址:https://www.cnblogs.com/youzhuxiaoyao/p/8658105.html
Copyright © 2011-2022 走看看