JavaScript常用原生DOM操作

 最近,自己在投简历,找工作,在忙碌的复习当中,希望把有用的知识分享出去,是自己的成长,也可以给别人帮助。 今天给大家分享一些常用的原生的JavaScript DOM 操作。

OK,那开始吧,那就开始吧O(∩_∩)O~~

一.查看浏览器视口尺?

  window.innerWidth/window.innerHeight(IE8以及IE8以下不能用  (′д` )…彡  )        document.documentElement.clientHeight/document.documentElement.clientWidth(标准模式下 可以使用(好长啊!!!)               document.body.clientHeight/document.body.clientWidth(怪异模式可用)

这么多方法,有的能用有的不能用怎么办呢??

那就封装一个getViewportOffset()

 1 function getViewportOffset(){
 2     if(window.innerWidth){
 3         return {
 4                 w : window.innerWidth,
 5                 h : window.innerHeight
 6                 }
 7     }else{
 8         if(document.compatMode === ‘CSS1Compat‘){
 9         return {
10                 w : document.documentElement.clientWidth,
11                 h : document.documentElement.clientHeight
12                     }
13         }else{
14             return {
15                 w : document.body.clientWidth,
16                 h : document.body.clientHeight
17                 }
18             }
19         }
20     }

在这里要说明一下:

标准模式:按照浏览器当前的语法进行渲染

怪异模式:(混杂模式)为防止老版本浏览器在新版本上不能使用,采取向后兼容。如:

                   IE6如果开启混杂模式,则可以兼容IE4IE5的语法

判断是不是怪异模式:document.compatMode

是:打印BackCompat;不是:打印CSS1Compat

怎么样呢,这样都在一起了,兼容性也不用考虑,是不是很棒!!!

下一个是谁呢???

滚动条,就是你了

那么滚动条有哪些东东呢!!!

滚动,获取滚动位置

滚动,有三个方法scroll(),scrollTo(),scrollBy();

参数(x, y)横纵滚动条的位置

我靠有这么多,别急,区别很明显也很好记。。。

ScrollBy()具有累加功能,多次调用,会在原来的基础上增加,其余那俩就不会啦。。。                    大家都读过小说吧,自动阅读工能就可以做啦,那怎么做呢 上菜!!!

?

window.setInterval(function (){
            scrollBy(0, 100);
        },30);

没有错,就是这样。。。(别打我)

那么下一个能让他动,怎么获取他的位置呢!!!

那就是

window.pageXOffsetLeft/window.pageYOffsetTop(IE8以及以下不能用,怎么又是IE8....)

document.documentElement. scrollTop/document.documentElement.scrollLeft

document.body.scrollTop/document.body.scrollLeft(咦,下面这俩货,貌似似曾相识)

没有错,就是前缀都相同的他们,由于兼容性比较混乱,针对IE8以及IE8 ↓ 都好用,那么,那么,那么,在封装一个!!!!!getScrollOffset

?

function getScrollOffset() {
            if(window.pageXOffset){
                return {
                    x : window.pageXOffset,
                    y : window.pageYOffset
                }
            }else{
                return {
                    x : document.documentElement.scrollLeft + document.body.scrollLeft,
                    y : document.documentElement.scrollTop + document.body.scrollTop
                    //对于他俩真不知怎么区分,那么通过相 + 的方式来计算,放心同一个方法一代版本浏览器只有一个!!!!
                }
            }
        }

?

诶呀我去,又搞定一个,那还差谁呢??

查看元素尺寸!!!

这个嘛,有没有上面那么烦人了

上方法

elem.getBoundingClientRect():兼容性很好,O(∩_∩)O~~

返回值是这样的对象

?

?这里要说明一下老版本IE没有实现width和height,还有这里返回width = border + padding + content,height同理,要记清楚哦,既然他没有实现,那只好作为JavaScript界中的大牛的我(吹吹牛,别当真,当真其实也没什么);

要来了(这里只做了width和height的兼容性处理)

?

?

function getElementOffset (elem) {
            var obj = elem.getBoundingClientRect();
            if(obj.width){
                return {
                    w : obj.width,
                    h : obj.height
                }
            }else{
                return {
                    w : obj.right - obj.left,
                    w : obj.bottom - obj.top
                }
            }
        } 

?还不错吧,别急别急,还有最后一个我保证!!!!

查看元素尺寸

ele.offsetWidth/ele.offsetHeight 返回元素的宽高,是 100 而不是 100px !!!

查看元素位置

ele.offsetTop/ele.offsetLeft 获取元素的top/left

查看元素位置

ele.offsetTop/ele.offsetLeft 获取元素的top/left

ele.offsetParent返回最近有定位的父级!!!

这里还需要说明一下:

对于无定位的父级返回在文档中坐标

对于有定位的父级返回相对父级的位置(自己有无定位都可以)!!!

今天就写这么多了,也不知道大家怎么看,这也是第一次写博客,大家看看就好,有问题的话,记得要反馈哦,好了本篇文章就写这些吧。

时间: 2024-08-02 23:23:57

JavaScript常用原生DOM操作的相关文章

原生JavaScript常用的DOM操作

之前项目一直都是用JQuery或者Vue来做的,确实好用,毕竟帮我们解决了很多浏览器兼容问题,但是后面发现大公司面试题都是要原生Javascript来做,然后我就一脸懵逼哈哈哈,毕竟大公司需要的框架或者库好多都是公司内部自己构建的,所以说到头来还是要原生JavaScript,这里总结了一些原生js常用的dom操作函数. 一:节点关系 //元素的子元素都可以通过someNode下的childNodes对象来访问 var firstChild = someNode.firstChild; //获得第

javascript 常用的数组操作

join() Array.join(/* optional */ separator) 将数组转换为字符串,可带一个参数 separator (分隔符,默认为","). 与之相反的一个方法是:String.splict() ,将字符串分隔成若干块来创建一个新的数组. reverse() Array.reverse(),颠倒数组元素的顺序,返回逆向的数组.注意此方法会修改原来数组元素的位置,而不是返回一个新的数组. sort() sort() 方法将数组中的元素排序并返回排序后的数组.s

javascript中的DOM操作及应用

javascript在dom中的应用是一个核心问题,它体现出了JavaScript的意义所在,它是我们操作页面变得动态化,操作页面变得更容易,但同时,大量的使用DOM操作,也会是浏览器的执行效率大打折扣,正确高效的使用DOM操作,是我们在实际工作中经常遇到的,那么我们就来看一下DOM操作: 当我们要对DOM元素进行各种操作的时候,我们首先要坐的就是先去获取这个元素: 1 <div id="example" class="divDom" >DOM操作 &l

网页制作之JavaScript部分 2 - DOM操作

1.DOM的基本概念  htmlDOM是一种面向对象的树的模型,它包含html中的所有元素:通过html可以找到所有包含在dom中的元素. DOM是文档对象模型,这种模型为树模型:文档是指标签文档:对象是指文档中每个元素:模型是指抽象化的东西. 2.Windows对象操作 一.属性和方法: 属性(值或者子对象): opener:打开当前窗口的源窗口,如果当前窗口是首次启动浏览器打开的,则opener是null. dialogArgument:对话框返回值. 子对象:history,locatio

JS原生DOM操作总结

DOM的主要操作--增.删.改.查节点 (1) 查找节点 document.getElementById('div1') document.getElementsByName('uname') document.getElementsByTagName('span') document.getElementsByClassName('alert') document.querySelector('#div1') document.querySelectorAll('.alert'); (2) 操

JavaScript基础:DOM操作详解

本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 JavaScript的组成 JavaScript基础分为三个部分: ECMAScript:JavaScript的语法标准.包括变量.表达式.运算符.函数.if语句.for语句等. DOM:文档对象模型,操作网页上的元素的API.比如让盒子移动.变色.轮播图等. BOM:浏览器对象模型,操作浏览器部分功能的API.比如让浏览器自动滚动. 事件 JS是以事件驱动为核心

JavaScript里面之dom操作

1.dom之选择元素 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>你好</title> </head> <body> <div> <div class="c1"></div> <div class="c1&

原生DOM操作两个栗子,关于折叠内容和批量删除

批量删除处理上次的全选事件  <script>var delete=document.getElementById("btn_delete"); delete.onclick=function() { var flag=window.confirm("你确定要删除吗?"); if(flag==true) { var selNum = document.querySelectorAll("input.checkinfo[type='checkbo

JavaScript基础-----(DOM操作的内容)

查询元素 1.直接访问指定节点的方法 getElementById():返回一个节点对象 id getElementByName():返回多个(节点数组) 名字 getElementByTagName():返回多个(节点数组) 标签名 2.间接根据层次关系查找节点 父节点 parentNode 孩子节点 childNodes 数组对象,表示该节点的多有子节点的集合 firstChild   lastChild 兄弟节点 nextSibling  previousSiBling 操作文本 1.对于