我有一个宽度为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。
答案 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