关于坐标点的计算,帮我看看理解的对不对
来源:7-5 自定义audio-js(2)
王文辉
2020-11-27 00:11:54
其实这个位置是一层层减去的,progressNode——》lineNode——》innerNode——》outerNode,
不过其中lineNode.left=1,innerNode.offsetLeft=0,所以老师没写,这么理解对吗
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
在这里输入代码,可通过选择【
progressNode.onclick=function(e){
var ev=e||event;
// 此处需要计算出点击位置在外层进度条的多少像素
// 层层减this.offsetLeft——>progressNode.offsetLeft=28
// this.parentNode.offsetLeft——>lineNode.offsetLeft=1,可忽略
// this.parentNode.parentNode.offsetLeft——>innerNode.offsetLeft=0
// this.parentNode.parentNode.parentNode.offsetLeft——>outerNode.offsetLeft=???
// var length=ev.clientX-this.offsetLeft-this.parentNode.offsetLeft-this.parentNode.parentNode.offsetLeft-this.parentNode.parentNode.parentNode.offsetLeft;
var length=ev.clientX-this.offsetLeft-this.parentNode.parentNode.parentNode.offsetLeft;
length=length/this.offsetWidth*100+'%';
// console.log(this.offsetLeft);
// console.log(this.parentNode.offsetLeft);
// console.log(this.parentNode.parentNode.offsetLeft);
// console.log(this.parentNode.parentNode.parentNode.offsetLeft);
trueLine.style.width=length;
}
代码语言】突出显示
1回答
好帮手慕言
2020-11-27
同学你好,这段计算可以参考下方图示:
蓝色这一段距离是ev.clientX,红色的这一段距离是this.offsetLeft,橘色是outerNode.offsetLeft(大盒子的左侧距离),黄色是输出的,也就是进度条长度。
祝学习愉快~
相似问题