javascript - 如何使用 Javascript/AngularJs 将按钮放置在图像上的特定位置(x,y)

标签 javascript html css angularjs

我有一个使用 angularJS 的元素,在我的元素中我有 2 张图片:

Image 1: <br/>

<img src="http://www.google.com/favicon.ico" alt="" ng-click="mark($event)" width="100"/>

<hr/>

Image 2: <br/>

<img src="http://www.google.com/favicon.ico" alt="" width="100"/>

当用户点击图像 1 时,我捕获图像的 x、y 位置。

$scope.mark= function(event){
    console.log("x = " + event.offsetX);
    console.log("y = " + event.offsetY);
}

得到一些像:

x = 123
y = 12

我需要使用 angularjs/javascript 在图像 1 的位置 (x, y) 上放置一个按钮,用户点击的位置(图像 1)。

两个图像相同。

我正在调查,但没有找到仅使用 angularjs 或 javascript 的解决方案。

任何建议。

最佳答案

@Eddy Howard 已经提出了原则。为了方便起见,您可以将功能放入指令中,可能是这样的(尽管这不是最佳解决方案):

.directive('posButton', function() {
   return {
    restrict: 'E',
    scope: {
      onClick: '=onClick',
      position: '=pos'
    },
    template: '<button ng-click="onClick()">foo</button>',
    link: function(scope, element, attrs) {

     element.css({
       visibility: 'hidden',
       position: 'absolute',
       top: '0px',
       left: '0px'
      });

      scope.$watch('position', function(){
        if(scope.position.length > 0) move(scope.position);
      }, true);

      function move(pos){
        element.css({
          visibility: 'visible',
          left:  pos[0] + 'px',
          top: pos[1] + 'px'
        });
      }
    }
  };
});

这是一个有效的 plunker .

关于javascript - 如何使用 Javascript/AngularJs 将按钮放置在图像上的特定位置(x,y),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52224348/

相关文章:

CSS - 文本溢出 : ellipsis causes <li>'s number to disappear

javascript - DataTables 设置默认排序列并设置不可排序列

javascript - css滚动的问题

Linux - 故障排除网页

javascript - 使用 jQuery 定位 Accordion 中的特定元素

javascript - CSS制作标签栏

css - 使用 CSS Grid 每行不同的列集

javascript - 如何获取在ExtJs上触发的最后一个事件

javascript - find() 的递归版本

javascript - 循环绘制许多 Canvas ?