美文网首页Web
JS操作html元素中的client

JS操作html元素中的client

作者: 追逐_chase | 来源:发表于2019-08-07 09:34 被阅读20次
web.jpeg

client 可视区域的内容

image.png

<script>
    var dvOBjc = document.getElementById("dv");

    // client 是可视区域  可以看到的区域
    //

    dvOBjc.onclick = function(){
        // 获取元素的宽度和高度 包括  内容区域 和 padding 
        // 不包含边框
        console.log(dvOBjc.clientWidth);
        console.log(dvOBjc.clientHeight);

        //左边边框的 宽度
        console.log(dvOBjc.clientLeft);
        //上边边框的宽度
        console.log(dvOBjc.clientTop);

    }
</script>

image.png

可以得出结论是: clientWidth不包含边框的宽度,clientLeft左边框的宽度 clientX可是区域的 横坐标, clientY可视区域的 纵坐标

div跟着鼠标移动
Untitled.gif
<script>

    var dv = document.getElementById("dv");
    var width = dv.offsetWidth;
    var height = dv.offsetHeight;
    document.onmousemove = function(e){
        //有一个隐藏的参数
        //但是IE8一下不支持
        // clientX可是区域的 横坐标
        //  clientY可视区域的 纵坐标
         e =  window.event || e;
        dv.style.left = e.clientX - width *0.5 + "px";
        dv.style.top = e.clientY - height *0.5 + "px";

        //在IE8一下
        // window.event.clientX
        // window.event.clientY
        
    }

</script>

每一个事件处理函数都有一个 隐藏的event 事件参数对象,但是IE8之前是没有的 window.event代替

获取可视区域的宽度和高度

  • IE谷歌,火狐在获取可视区域的时候,不同版本的浏览器存在不同的差异
  • w3c标准document.compatModet 模式来判断是不是怪异的浏览器, CSS1Compat规定声明了 <!DOCTYPE html> , BackCompat 未声明
  • 比较特殊的一点是早期的 谷歌浏览器是没有 <!DOCTYPE html> 所以一般使用 document.body获取client对应的
  • IE浏览器是通过 window对象的 innerWidth
function client(){
        //IE浏览器
        if(window.innerWidth != null){

            return {
                width:window.innerWidth,
                height:window.innerHeight
            }
        } 
        
        //W3c标准的模式
        if(window.compatMode == "CSS1Compat"){
            return {
                width:document.documentElement.clientWidth,
                height:document.documentElement.clientHeight
            }
        }

        //怪异模式
        return {
            width:document.body.clientWidth,
            height:document.body.clientHeight
        }
    }

相关文章

  • JS操作html元素中的client

    client 可视区域的内容 可以得出结论是: clientWidth是不包含边框的宽度,clientLeft 是...

  • web自动化_dom

    js不能直接操作html元素,比如要修改元素的样式,需要通过dom对象操作html元素js ->dom对象->调用...

  • Jquery介绍

    JQuery是一个JS库,包含了以下特性: HTML 元素选取 HTML 元素操作 CSS 操作 HTML 事件函...

  • 学习路线

    html /css (用来搭建网站页面元素和定义元素的样式) javaScript(js) (用来操作html元素...

  • jQuery入门

    jQuery是js的函数库。 功能: html元素选择与操作 css操作 html事件函数 JS特效和动画 Htm...

  • JS操作html元素中的offset

    我们在开发中有时会遇到获取元素的width和height等样式 在style标签中设置的样式属性获取不到style...

  • JS操作html元素中的事件

    事件在日常使用到事件,比如:按钮的点击,鼠标的点击等,那么如何给一个元素绑定事件呢,事件的绑定有几个方式呢? 绑定...

  • JS操作html元素中的scroll

    之前有说过offset的一些属性值, offset系列:offsetLeft:距离左边位置的值offsetTop:...

  • 02.webRTC使用浏览器给自己拍照

    html client.js

  • js基础

    1.网页 网页=html+css+js html:网页元素内容 css:控制网页样式 js:操作网页内容,实现功能...

网友评论

    本文标题:JS操作html元素中的client

    本文链接:https://www.haomeiwen.com/subject/eqendctx.html