您好,这个问题已经解决了,关键代码如下:
- flex.addEventListener(flex.hostElement, 'click', (e) => {
- let $hit = flex.hitTest(e)
- let $rowIndex = $hit.row
- let $colIndex = $hit.col
- if(Math.sign($rowIndex) === -1 || Math.sign($colIndex) === -1){
- return false
- } // 判断负数
- /* 显示(放大镜)帮助索引 */
- // 这里需要传入第三个参数true,获取到的才是相对于flexGrid层的坐标
- let rcCell = flex.getCellBoundingRect($rowIndex, $colIndex, true) // 单元格坐标
- /*
- let rcBody = document.body.getBoundingClientRect() // body坐标
- let ptOffset = new wjcCore.Point(-rcBody.left, -rcBody.top)// 新坐标
- this.helpIndex = {
- left: rcCell.left - 1 + ptOffset.x + 'px',
- top: rcCell.top - 1 + ptOffset.y + 'px'
- }
- */
- // 这里需要加上单元格的宽、高度,再加上图标本身的宽度38
- this.helpIndex = {
- left: rcCell.left + rcCell.width + 38 + 'px',
- top: rcCell.top + rcCell.height + 'px'
- }
-
- // console.log('坐标', rcCell.left - 1 + ptOffset.x, rcCell.top - 1 + ptOffset.y)
- })
复制代码 完整的Demo已经上传到附件中,请下载运行参考。
|