JavaScript的兼容写法!

1.获取当前网页的宽度和高度
	window.innerWidth?window.innerWidth:document.documentElement.clientWidth;
	window.innerHeight?	
	window.innerHeight:document.documentElement.clientHeight;
			
2.获取滚动条距顶端的距离
    var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;
3.获取滚动条距左边的距离
    var scrollTop=document.documentElement.scrollLeft||document.body.scrollLeft;
4.通过byClassName获取页面元素的兼容

分析:如果支持就直接获取,如果不支持,通过byTagName获取,需要遍历所有的标签,找到需要的className的元素

    function byClassName(obj,className){
				if(obj.getElementsByClassName){
					return obj.getElementsByClassName(className);
				}                                                                                                                                                                                                                                                                                                                                                                                                                                                               
				else{
					var arr=[];
					var eles=obj.getElementsByTagName('*');
					for(var i=0,len=eles.length;i<len;i++){
						if(eles[i].className==className){
							arr.push(eles[i]);
						}
					}
					return arr;
				}
			}
使用:
   var oDivClass=byClassName(document,'pox')[0];
				alert(oDivClass);
5.获取节点对象的class属性的兼容
   function getAttributeFromClass(obj,className){
	  return obj.getAttribute('class')==null?obj.getAttribute('className'):obj.getAttribute('class');
			}
6.获取非行内样式的兼容
   function getStyle(obj,attr){
	 return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj,1)[attr];
		}
7.获取事件对象的编码值
   oBox.onclick=function(evt){
				var e=evt||window.event;
			}
8.获取鼠标按键的编码值
	function getButton(evt){
				var e=evt||window.event;
				if(evt){
					return e.button;
				}else if(window.event){
					switch(e.button){
						case 1:return 0;
						case 4:return 1;
						case 2:return 2;
					}
				}
			}

9.获取键盘按键的编码值
	onkeydown和onkeyup事件
	  var code=event.keyCode||event.which;
	onkeypress事件
	  var code=event.keyCode||event.which||charCode
10.获取事件源
	var target=e.target||e.srcElement;
11.阻止事件冒泡
	var e=eve||window.event;
	   e.stopPropagation?e.stopPropagation():e.cancelBubble=true;
12.阻止浏览器默认行为的兼容(表单提交、超链接、右键菜单)
	function stopDefault(eve){
		var e=eve||window.event;
			e.preventDefault?e.preventDefault():e.returnValue=false;
			}

13.事件监听
	function addEventListener(obj,event,fn,boo){
		if( addEventListener){
			obj.addEventListener(event,fn,boo)
				}else if(attachEvent){
					obj.attachEvent('on'+event,fn);
				}else{
					obj['on'+event]=fn;
				}
			}
14.移除事件监听
	function removeEventListener(obj,event,fn,boo){
		if( removeEventListener){
				obj.removeEventListener(event,fn,boo)
			}else if(detachEvent){
				obj.detachEvent('on'+event,fn);
			}else{
				obj['on'+event]=null;//这里注意,在移除时直接设置为空就好了
			}
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是兼容性比较好的写法: ``` div { overflow: auto; overflow-x: auto; overflow-y: auto; /* IE6/7 */ _overflow-x: auto; _overflow-y: auto; /* Firefox */ overflow: -moz-scrollbars-horizontal -moz-scrollbars-vertical; overflow-y: scroll; /* Firefox 4+ */ } ``` 其中,`_overflow-x` 和 `_overflow-y` 是 IE6/7 下的 hack 写法,用于覆盖这两个浏览器的 bug。`overflow: -moz-scrollbars-horizontal -moz-scrollbars-vertical;` 可以让 Firefox 显示滚动条。最后一行 `overflow-y: scroll;` 则是针对 Firefox 4+ 的写法。 ### 回答2: overflow:auto是CSS属性中用于处理元素溢出内容时的一种方案。它的作用是当元素内部内容超出容器大小时,自动显示滚动条以便查看全部内容。然而,不同浏览器对于overflow:auto的兼容性存在差异。 为了解决这个兼容性问题,可以使用以下方法: 1. 使用浏览器前缀:在CSS中,可以为overflow属性添加浏览器前缀来实现兼容性。例如,-webkit-表示Chrome和Safari,-moz-表示Firefox,-o-表示Opera等。 -webkit-overflow-scrolling: touch; /* for iOS Safari */ -ms-overflow-style: -ms-autohiding-scrollbar; /* for Internet Explorer */ 2. 使用JavaScript:如果需要更加精确地控制元素的滚动行为,可以使用JavaScript来实现。通过监听滚动事件,动态修改元素的overflow属性,来实现不同浏览器的兼容性。 var element = document.getElementById("myElement"); if (element.scrollHeight > element.clientHeight) { element.style.overflow = "auto"; } 3. 使用特殊样式:对于一些特殊情况,可以使用一些特殊的样式来实现兼容性。例如,当在iOS设备上,可以使用-webkit-overflow-scrolling: touch来实现更流畅的滚动效果。 以上就是overflow:auto的兼容写法的一些方法。根据具体的需求和浏览器的兼容性要求,选择合适的方法来实现元素内容的溢出处理。 ### 回答3: 在CSS中,overflow:auto用于定义一个元素在内容溢出时是否显示滚动条。在一些旧版本的浏览器上,可能不支持这个属性或会有一些兼容性问题。为了解决这个问题,可以使用以下兼容写法: 1. 使用包含块:可以将需要设置overflow:auto的元素放置在一个包含块内,并设置该包含块的overflow属性为auto。这样可以确保在不支持overflow:auto的浏览器上,也能正常显示滚动条。 ```css .container { overflow: auto; } ``` 2. 使用overflow-x和overflow-y:有些旧版本的浏览器只支持overflow-x和overflow-y属性,可以将需要设置overflow:auto的元素分别设置这两个属性为auto,以确保在这些浏览器上也能正常显示滚动条。 ```css .element { overflow-x: auto; overflow-y: auto; } ``` 总的来说,以上是常用的两种兼容写法,可以根据具体情况选择适合的方式来解决overflow:auto在旧版浏览器上的兼容性问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值