其他分享
首页 > 其他分享> > JS_11

JS_11

作者:互联网

一、事件对象

概述:事件对象(event),任意节点树上的节点都可以绑定一个或者多个事件,当用户触发事件的时候,系统会自动会事件处理函数传递实参,而这个参数即为事件对象。

<script>
    var div = document.querySelector("div");
    div.onclick = function(event){
        //对于高级浏览器(谷歌 IE8以上的浏览器)------>event
        //对于低级浏览器(IE7以下的浏览器)------>有兼容性问题,因此用短路语法来获取event
        var e = event || window.event;
        console.log(e);
    }
</script>

 //当事件处理函数执行的时候,系统会自动注入实参,我们用形参接收【事件对象】

1.1、获取鼠标位置

1.1.1 screenX || screenY

概述:它们是event的属性,能获取到鼠标在屏幕中的位置,其原点是显示屏的左上角,跟网页左上角无关

1.1.2、pageX || pageY

概述:它们是event的属性,也能获取到鼠标在屏幕中的位置,但是原点在网页主题的左上角,不会随着网页的向下滚动而改变,固定在左上角

1.1.3、clientX ||clientY

概述:它们是event的属性,也能获取到鼠标在屏幕中的位置,原点在网页可视区域的左上角,会随着网页滚动条的滚动而改变

1.1.4、offsetX || offsetY

概述:它们是event的属性,也能获取到鼠标在屏幕中的位置,获取的方法与pageX和pageY类似,但是他的原点会随着元素的子元素受到影响。

<script type="text/javascript">
    //获取节点
    var inn = document.querySelector('.inner');
    //鼠标在整个网页当中移动
    document.onmousemove = function(event){
            //短路语法进行兼容
            var e = event||window.event;
            inn.innerHTML  = "screenX:"+ e.screenX + "screenY:"+e.screenY + "<br/>"; 
            inn.innerHTML += "pageX:" + e.pageX + "pageY:" + e.pageY + "<br/>";
            inn.innerHTML += "clientX:" + e.clientX + "clientY:" + e.clientY + '<br/>';
            inn.innerHTML += "offsetX:" + e.offsetX + "offsetY:" + e.offsetY ;
    }
 </script>

 1.2、利用原生JS写拖拽事件

<script>
    // 拖拽三板斧:onmousedown---->onmousemove---->onmouseup
    var div = document.querySelector(".cur");
    var ex , ey;
    div.onmousedown = function(event){
        var e = event || window.event;
        ex = e.offsetX;
        ey = e.offsetY;
        document.onmousemove = function(event1){
            var e1 = event1 || window.event1;
           div.style.left = e1.clientX - ex +"px";
           div.style.top  = e1.clientY - ey +"px";
     }
    }
//可以给鼠标事件多次赋值来覆盖上一次的赋值 div.onmouseup = function(){ document.onmousemove = null; } </script>

 1.3、京东放大镜

    <style>
        body{
            background: #eee;
        }
        *{
            padding: 0;
            margin: 0;
        }
        .outer{
            width: 500px;
            height: 500px;
            position: relative;
            background:url(./images/4.webp);
        }
        .inner{
            width: 100px;
            height: 100px;
            background: black;
            opacity: 0.3;
            position: absolute;
        }
        .outer .pic{
            width: 100px;
            height: 100px;
            background:url(./images/4.webp);
            position: absolute;
            left :620px;
            top:200px;
            transform : scale(3);
        }
    </style>
</head>
<body>
    <div class="outer">
        <div class="inner"></div>
        <div class = "pic"></div>
    </div>
</body>
</html>
<script>
    var inn = document.querySelector(".inner");
    var pic = document.querySelector(".pic");
    inn.onmousedown = function(event){
        var ex , ey;
        var e = event || window.event;
        ex = e.offsetX;
        ey = e.offsetY;
        document.onmousemove = function(event1){
            var l , t;
            var e1 = event1 || window.event1;
            l = e1.clientX - ex ;
            t = e1.clientY - ey ;
            if(l <= 0) l = 0;
            if(l >= 400) l = 400;
            if(t <= 0) t = 0;
            if(t >= 400) t =400;
            inn.style.left = l + "px";
            inn.style.top = t + "px";
            pic.style.backgroundPosition = "-" + l + "px -" + t + "px";
        }
    }
    document.onmouseup = function(){
        document.onmousemove = null;
    }
</script>

 

 

 

标签:11,function,JS,inn,var,div,document,event
来源: https://www.cnblogs.com/DavisHuang/p/15412185.html