javascript - 如何在单击 div/图像的特定区域时运行不同的 Javascript 函数

标签 javascript css html

我想知道是否可以在单击 div/图像的不同区域时运行不同的 Javascript 函数。

例如,如果我有一张尺寸为 100px X 100px 的图片,并且我想在用户点击图片左上角 20% 的区域时显示提醒(即,如果用户点击 0% 到 100px 之间的区域)距图像顶部向下 20%,距图像左侧 0% 到 20%),这可能吗?

Area example

如果是这样,如果用户在图像顶部下方 30%-40% 和 50-60 之间的区域内单击,我是否也可以运行不同的 Javascript 警报功能(具有不同的警报消息) % 从图像的左侧开始?

我需要使用高度和宽度的百分比来定义区域,而不是明确定义像素数。

这样的事情是否可能,如果可能,是否需要一个库来检测光标/触摸的位置?

最佳答案

您可以在点击事件上使用 position() 函数。 如果你的图片有 id="myImage"你可以这样做:

$("#myImage").click(function(e) {
    var horizpercent = 20;
    var vertpercent = 20;
    var posX = e.pageX - $(this).position().left;
    var posY = e.pageY - $(this).position().top;
    var width = $(this).width();
    var height = $(this).height();
    if (posX < width * horizpercent / 100 && posY < height * vertpercent / 100) {
        alert('ye')
    }
});

关于javascript - 如何在单击 div/图像的特定区域时运行不同的 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45699593/

相关文章:

javascript - 分割字符串

javascript - 如何将二进制补码字符串解析为数字

javascript - AngularJS 和 i18n : apply ng-repeat filters after translating list items properties

css - 将音频播放器的宽度设置为屏幕宽度

jquery - HTML 表格中堆叠和分组的条形图

jquery - AJAX 不提交表单

javascript - 如何在按钮提交之前验证数据?

Javascript 将对象插入特定索引

html - Bootstrap 4 中 .flex-fill 的反义词是什么?

html - 不同页面上的字体大小