如何根据div中的点击计算位置

时间:2011-12-21 23:56:12

标签: javascript math

我有一个宽度为308px的div。在这个div中我有一个缓冲条(可以是0到308之间的任何长度)。

div用于显示播放音轨的进度。音轨的持续时间以毫秒为单位。

我正在尝试让用户根据div中的点击更改曲目中的位置。但是我的数学错了。

我目前拥有的是:

var pos = e.pageX - $(this).offset().left; // returns the position of the click in the div (0 to 380)
var relpos = parseInt(308, 10)/parseInt(pos, 10);
var newpos = parseInt(duration, 10)/parseInt(relpos, 10);

如何根据点击div的位置计算新位置?

如果您想测试它,我已经设置了fiddle

1 个答案:

答案 0 :(得分:3)

首先,308实际上是您应该替换的缓冲区宽度,如果您需要调整大小。 代码是:

  (function($) {
    var duration = 138736;
    $(document).on('click', '.buffer', function(e) {
    var pos = e.pageX - $(this).offset().left;
    var relpos = duration*pos;
    var newpos = relpos/308;

    $('.test').html(pos + '/' + newpos + '/'  + duration);
  });
  })(jQuery);

如果308是持续时间 比pos是x,x =(pos * duration)/ 308