【问题标题】:How to detect position of mouse cursor in a div [duplicate]如何检测鼠标光标在div中的位置[重复]
【发布时间】:2013-03-26 19:01:29
【问题描述】:

我有一个 100 像素宽的矩形跨度,我希望用户在 0-100% 之间进行选择。

无论他们在 div 中沿宽度单击的哪个位置,该值都会被保存并立即使用 ajax 显示给用户。因此,如果他们正好点击 div 的中间,则保存的值将是 50%。

我想不出一种优雅的方式来做到这一点!有什么建议吗?

【问题讨论】:

  • 我会使用无数现有的 jQuery UI 小部件之一。你是什​​么意思“优雅”的方式?你应该试着写它,如果你遇到困难,在这里发布一个真正的问题。
  • 什么计量单位?整个页面的像素还是只是 div?

标签: php javascript jquery ajax


【解决方案1】:

考虑将<input type="range"/><span> 结合使用

-编辑-

作为对评论的回应,通过this plugin添加了对 Firefox 的后备支持

Updated Demo Fiddle with Polyfill : http://jsfiddle.net/V3ygq/2/

Demo Fiddle: http://jsfiddle.net/V3ygq/

HTML

将范围放在 100px 宽的 <span> 内。
<div id="console">...</div>
<span id="container">
     <input id="myRange" type="range" min="0" max="100" />
</span>

jQuery

change() 上,使用以下值执行操作:
$(function () {
    $("#myRange").on('change', function () {
        // Pull out value, set html of #console DIV
        $("#console").html($(this).val());
    });
    // Set initial value of #console
    $("#myRange").trigger('change');
});

CSS

隐藏&lt;span&gt; 中的范围选择器,但仍允许点击更改其值
#container {
    width: 100px;
    background: #333;
}
#container input {
    opacity: 0;
}

【讨论】:

  • 你需要一个后备。 caniuse.com/#feat=input-range Firefox 使用 HTML5 表单元素并不快。
  • @Rudie,好电话。以上更新。
  • 网址错误?我没有看到小提琴 V3ygq 的后备...
猜你喜欢
  • 1970-01-01
  • 2013-01-26
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2013-04-18
  • 1970-01-01
  • 2019-11-07
相关资源
最近更新 更多