zoukankan      html  css  js  c++  java
  • 事件 + 小兼容测试

    1.阻止默认事件   return false

    2.系统默认右键菜单  oncontextmenu  若想兼容所有浏览器,需要写成document.oncontextmenu=function(){ return false;}

    3.原生javascript的鼠标位置是event.clientX与event.clientY.

       事件属性返回当事件被触发时鼠标指针向对于浏览器页面(或客户区)的水平(垂直)坐标。

       客户区指的是当前窗口。

    4.jquery中鼠标位置是用event.pageX与event.pageY

       clientY 与pageY是有区别的,clientY会忽略滚动条滚动的距离,它指的是鼠标相对于内容区顶部的距离,而pageY会在clientY的基础上加上滚动条滚动的距离,clientX与pageX         也有同样的差异。。

    5.  返回键盘被按下的键的字符   event.keyCode全部能支持     (event.which在IE6-8中不支持) 

    6.相对位置:

       javascript  中有offsetLeft与offsetTop,jquery中有offset().left,offset().top,position().left,position().top四个

      区别如下:

       offsetLeft,offsetTop指的是一个元素相对于包含它的元素的距离

       offset()指的是一个元素相对于当前可视窗口的偏移量

       position()指的是一个元素相对于父元素的偏移量

      因此,offsetLeft,offsetTop与position()应该是一个数据,(明天测试)

     测试代码如下: 

    <!doctype html>
    <html>
    	<head>
    		<title>clientX与pageX的差异</title>
    		<meta charset="utf-8"/>
    		<style type="text/css">
    			*{margin:0;padding:0;}
    			ul{list-style:none;}
    			.demo{500px;height:500px;margin:1500px auto 10px;border:5px solid #139ac7;position:relative;}
    			.demo_position{100px;height:100px;border:2px solid #dedede;background:#dcdcdc;filter:alpha(opacity=50);filter:0.5;position:absolute;top:100px;left:100px;}
    			ul{500px;border:5px solid #ccc;margin:0 auto 20px;}
    		</style>
    		<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
    		<script type="text/javascript">
    		//jquery
     			$(function() {
     				$('.demo').click(function(e) {
     					$('<li>pageX:'+e.pageX+'px,pageY:'+e.pageY+'px</li>').appendTo('ul')
     				});
     				$('.demo_position').click(function() {
     					$('<li>position().left:' + $(this).position().left + ' px;position().top' + $(this).position().top + ' px</li><li>offset().left:' +  $(this).offset().left + ' px;offset().top:' + $(this).offset().top + 'px</li>').appendTo('ul')
     				})
     			})
    
     		//javascript
     		window.onload = function() {
     			oDiv = document.getElementById('resArea');
     			oUl = document.getElementById('showArea');
     			oPos = document.getElementById('demo_position');
     			oDiv.onclick = function(ev) {
     				var oEvent = ev || event;
     				var ele = document.createElement('li')
     				ele.innerHTML = 'clintX:' + event.clientX +'px,clientY:' + event.clientY + 'px' 
     				oUl.appendChild(ele)
     			}
     			oPos.onclick = function() {
     				var eles = document.createElement('li');
     				eles.innerHTML = 'offsetLeft:' + oPos.offsetLeft + 'px,offsetTop:' + oPos.offsetTop + 'px';
     				oUl.appendChild(eles)
     			}
     		}
    		</script>
    	</head>
    <body>
    	<div class="demo" id="resArea">
    		<div class="demo_position" id="demo_position">内容区</div>
    	</div>
    	<ul id="showArea">显示区</ul>
    </body>
    </html>
    

      测试结果如下:

    7.宽度与高度

      javascript中有offsetWidth/offsetHeight ,指的是一个元素的宽与高,包括边框,内边距,不包含外边距在内

      jquery中有width()/height(),innerwidth()/innerHeight(),outerWidth(boolean)/outerHeight(boolean)

      width()/height():指的是dom渲染后的width与height值

      innerWidth()/innerHeight()指的是dom渲染后的width+左右padding/height+上下padding的值

      outerWidth()/outerHeight()指的是dom渲染后的width+左右padding+左右border值/height+上下padding+上下border值

      outerWidth(true)/outerHeight(true)指的是在outerWidth()/outerHeight()的基础上加上margin的值

    测试案例如下:

    <!doctype html>
    <title>html5示例</title>
    <meta charset="utf-8">
    <style type="text/css">
    *{margin:0;padding:0;}
    .demo{200px;height:200px;padding:50px;border:10px solid rgba(31,15,00,0.5);margin:100px;}
    </style>
    <script type="text/javascript" src="jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
    $(function(){
    	$('<p></p>').html(''+$('.demo').css('width')+';padding:'+$('.demo').css('padding')+';margin:'+$('.demo').css('margin')).appendTo('body')
    	$('<p>'+$('.demo').width()+';innerWidth:'+$('.demo').innerWidth()+';outerWidth:'+$('.demo').outerWidth()+';outerWidth/true'+$('.demo').outerWidth(true)+';</p>').appendTo('body')
    })
    
    </script>
    <body>
    <script type="text/javascript">
    window.onload = function() {
    	oDiv = document.getElementById('demo')
    	oP = document.createElement('p')
    	oP.innerHTML = ''+oDiv.offsetWidth+';height:'+oDiv.offsetHeight;
    	document.body.appendChild(oP)
    }
    </script>
    	<div class="demo" id="demo"></div>
    </body>
    

      

  • 相关阅读:
    定时器
    js中script的上下放置区别 , Dom的增删改创建
    函数声明与应用
    常规选择器
    表格的制作
    流程控制
    For循环
    洛谷P1419寻找段落
    洛谷P1021邮票面值设计
    洛谷P3119草鉴定
  • 原文地址:https://www.cnblogs.com/fsy0718/p/3070263.html
Copyright © 2011-2022 走看看