jquery鼠标移入弹出层_jq: 事件-鼠标

点击

在js中,绑定事件函数要具体到元素,如

<ul>
    <li>1</li>
    <li>2</li>
</ul>
<script>
    var li0 = document.getElementsByTagName('li')[0];
    li0.onclick = function() {
        console.log(this.innerText)
    }
</script>

e4e511f110268ac55427208370341f46.png

所以在jq中同理,可以利用this,点击谁,获取谁的元素,再放入到jq对象即可使用对应的方法,如:

<ul>
    <li>1</li>
    <li>2</li>
</ul>
<script src="../jquery-3.4.1.js"></script>
<script>
    $('li').click(function() {
        console.log($(this).text());
    })
</script>

209b1af7fb274b816f484cb95336fbfd.gif

事件函数中的event参数

event.pageX 获取浏览器到当前的x轴位置

event.pageY 获取浏览器到当前的y轴位置

$('.item').click(function(e) {
    console.log(`x轴位置:${e.pageX} y轴位置:${e.pageY} `);
})

fba8b1d66f019e2430fd0520b313c8d8.png

event.which 判断点击的左键 中键 右键

event.which = 1 鼠标左键

event.which = 2 鼠标中键

event.which = 3 鼠标右键

contextmenu = false 函数可以取消右键菜单弹出

$(document).contextmenu(function() { // 防止右键菜单弹出
    return false;
})

$(document).mousedown(function(e) {
    console.log(e.which);
})

click 单机事件

dblclick 双击事件


移动

mouseenter/mouseleave 鼠标进入/鼠标离开

$('.item').mouseenter(function() {
    console.log('鼠标移入')
}).mouseleave(function() {
    console.log('鼠标移出')
})

dac39c3ef6f216c62a913544080b9c8b.gif

是否冒泡: 不冒泡

$('.item').mouseenter(function() {
    console.log('item鼠标移入')
}).mouseleave(function() {
    console.log('item鼠标移出')
})

$('.box').mouseenter(function() {
    console.log('box鼠标移入')
}).mouseleave(function() {
    console.log('box鼠标移出')
})

9797abccfba856b3e4088368f4ccda1c.gif

mouseover/mouseout 鼠标进入/鼠标离开(会冒泡)

$('.item').mouseover(function() {
 console.log('item鼠标移入')
}).mouseout(function() {
 console.log('item鼠标移出')
})

$('.box').mouseover(function() {
 console.log('box鼠标移入')
}).mouseout(function() {
 console.log('box鼠标移出')
})

6d017d7ecefbf3e2cdde444a62d86144.gif

8e38fe1b4e47dccca6c50f4d67cf7cd7.gif

鼠标进入item中,触发冒泡,box的进入事件函数也被调用。

鼠标离开item中,触发冒泡,box的离开事件也被调用,然后进入到了box区域中(因为依然还在这里)。


mousedown 鼠标按下

mouseup 鼠标抬起

拖拽:

<style>
     .item {
           position: relative;
           width: 100px;
           height: 100px;
           background: orange;
        }
</style>
</head>
<body>
<div class="item">test</div>
<script src="../jquery-3.4.1.js"></script>
<script>
 $('.item').mousedown(function(e) {
      var offset = $(this).offset();  // 定义盒子的边框
      var dis = {};                   // 创建一个存放鼠标到盒子边框的位置
      dis.x = e.pageX - offset.left;  // 鼠标到盒子左边距离
      dis.y = e.pageY - offset.top;   // 鼠标到盒子右边距离
      var _this = this;               // 盒子的this
      $(document).mousemove(function(e) {
           $(_this).css({              // 盒子的样式
                left: e.pageX - dis.x, // 移动到新位置 - 鼠标到盒子的距离 = 盒子定位的位置
                top: e.pageY - dis.y,
                })
            }).mouseup(function() {         // 鼠标抬起后
      $(this).off('mousemove mouseup') // 取消移动和抬起事件
            })
           return false; // 防止文字被选中
        })
    </script>

dd39461288146d6a983cdd2a72d8b90c.gif
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值