js之event对象(二)

终于获取到了事件发生的对象了,用起来也就一句话:

  • var eve = (window.event)?window.event:e;//或者下面更简洁~
  • var eve=window.event||e;//现在兼容全部浏览器了
1.找到目标对象
  • w3c标准:currentTarget,relatedTarget,target
  • IE标准:fromElement,toElement,srcElemet
  • 还是FF支持w3c,chrome两中写法都支持
这不算什么问题,用上面的方法判断即可,或者是:
  • var ie=/msie/i.test(navigater.useragent);//判断IE先,
2.找到鼠标位置
  1. clientX,clientY--参考浏览器窗口--兼容IE,FF,chromet
  2. pageX,pageY--参考document对象--只有IE不支持
  3. screenX,screenY--参考浏览器屏幕--全部兼容
  4. offsetX,offsetY--参考事件目标对象--只有FF不兼容
以上四种足矣解决问题了~其他等等写法会有不同兼容问题,见到有人用的嗨,但不提出了,新学的时候,没找到一个好的教材,总结出这个,还真不容易~~第一二条结合起来可以满足任何需要了,其他的要用到的时候再测试~
3.scroll的值
  • document.documentElement.scrollTop  --FF&IE支持,chrome下为0;
  • document.body.scrollTop --chrome支持,FF&IE下为0;
所幸即便不支持,也有个0值,用的时候直接document.documentElement.scrollTop+document.body.scrollTop便能解决问题
这样就可以简单的回到顶部了:
  • obj.onclick = function(e){
  • document.documentElement.scrollTop= 0;
  • document.body.scrollTop=0;
  • }
回到页面的某处用id标记即可<a href="#idname">toidname</a>,瞬间回到想要的地方,不过想要温柔的动画回去,就要用到上面的sroll值了。setTimeout吧。
  • obj.onclick = function(e){
  • var evt = window.event||e;
  • function totop(){
  • document.documentElement.scrollTop = document.documentElement.scrollTop - 20;
  • document.body.scrollTop = document.body.scrollTop -20;
  • if(document.documentElement.scrollTop>0|| document.body.scrollTop>0)
  • setTimeout(totop ,10);
  • }
  • totop();
  • }
现在可以温柔的回到顶部了,这种写法很直观,但有种不祥的预感,最后还可能给了document.?.scrollTop一个负数值~所幸,赋给它一个负数值,它扔等于0;控制动画接下来研究了~
4.监听onscroll事件,问题来了
posted @ 2011-10-27 15:27  xiaoc001  阅读(185)  评论(0编辑  收藏  举报