angleJsディレクティブのリンク関数内の要素タグの座標を取得する方法

KanhuP2012

AngularJSでディレクティブを介してツールチップを実装していますが、要素の座標を取得できません。ツールチップが表示されたら、その位置の座標を取得し、位置に応じて表示したいと思います。

'use strict';
var utility = angular.module("utility", []);

utility.directive("tooltip", function () {

    var directive = {};

    directive.restrict = 'A';
    directive.transclude = true;

    directive.link = function ($scope, element, attributes) {
        element.html("This is the new content: ");
        element.bind('mouseenter', createDiv);
        element.bind('mouseleave', destroyDiv);


        function createDiv() {

            //need the coordinate of the pointer to display div on hover of attribute.

            var divTag = document.createElement("div");
            var toolTipHtml;
            divTag.id = "divToolTip";
            divTag.setAttribute("align", "center");
            //divTag.style.border = "1px solid #ccc";
            divTag.style.zIndex = "999";
            divTag.style.position = "absolute"
            divTag.style.width = "200px";
            divTag.style.height = "115px";
            toolTipHtml = "<div style=\" opacity:0.8; border-bottom:15px solid #000; border-left:10px solid transparent;border-right:10px solid transparent;width:0;height:0; \"></div>"
            toolTipHtml += "<div style = \"background-color:black; opacity:0.8;  border: 1px solid #F11; width:98%; height:95%; -webkit-border-radius:20px; position:relative;\">";
            toolTipHtml += "<div style=\" width:96%; height:10px; margin-top:15px;\"> <div style=\" float:left; width:90%; height:9px;\"></div> <div style=\" float:left; width:10%\">  <img src=\"./img/close.png\" alt=\"HTML Tutorial\"/> </div> </div>";
            toolTipHtml += "<div style=\"float:left; width:150px;\"/> " + $scope.toolTipData.message + "</div>";
            toolTipHtml += "</div>";

            divTag.innerHTML = toolTipHtml;

            element.append(divTag);
        }

        function destroyDiv() {
            var divTag = document.getElementById("divToolTip");
            divTag.remove();
        }
    }

    directive.scope = true;

    return directive;


});
charlietfl

angle.elementjQuery互換のAPIです。

jQueryライブラリがページに含まれている場合、実際にはjQueryを使用しますが、これは依存関係ではありません。

jQueryのイベントハンドラーの最初の引数はイベントオブジェクトであるため、その引数をイベントハンドラー関数に渡す必要があります。そうすれば、座標にアクセスできます。

function createDiv(event){

   var pageX = event.pageX,
       pageY = event.pageY;

       /* your existing code */
}

また、これを使用して、新しい要素を作成および操作することもできます。

var divTag = angular.element('<div>');
divTag.css({zIndex:999, position:'absolute', width: 200, height: 115}); 

参照:angular.elementドキュメント

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

anglejsディレクティブリンク関数の要素クラスを変更します

分類Dev

ディレクティブ内の要素幅を角度の方法で取得する

分類Dev

ディレクティブのリンク関数からDOM階層の要素を取得します[AngularJS]

分類Dev

同じディレクティブのリンク関数内でディレクティブコントローラーの関数を使用する

分類Dev

ディレクティブとコンポーネント内の要素の幅/高さを取得する方法は?

分類Dev

anglejsのディレクティブ関数内で現在のController $ scopeを取得するにはどうすればよいですか?

分類Dev

anglejs-テンプレート内のディレクティブ要素をコピーします

分類Dev

anglejsおよびrequirejsを使用する場合のディレクティブレンダリング遅延

分類Dev

複数の値 (文字列、数値、配列など) を anglejs の要素ディレクティブに渡す方法

分類Dev

ディレクティブのリンク関数の動作をテストする方法

分類Dev

ngClickディレクティブ内の要素を取得します

分類Dev

要素の .html() 内のコントローラー関数に引数を渡す角度ディレクティブ

分類Dev

Angular [innerHtml]:[innerHtml]ディレクティブを使用して要素内に追加の要素をレンダリングする方法

分類Dev

AngularディレクティブのLink関数内でCSSスタイルを設定する方法

分類Dev

ngIfがhtml要素のレンダリングを終了したらngIf内でディレクティブをトリガーする方法は?

分類Dev

anglejsでタブが選択されている場合にのみ関数(またはディレクティブ)を呼び出す方法は?

分類Dev

Angularjs-ディレクティブ内のネストされた要素に関数を割り当てる方法

分類Dev

複数の座標境界でフィルタリングするmysqlクエリ

分類Dev

内部配列内の要素でオブジェクトの配列をフィルタリングする方法 - 関数型プログラミング Javascript

分類Dev

AngularJSディレクティブ内のトランスクルージョンされた要素をクリックして関数を呼び出す

分類Dev

検出された面のバウンディングボックスのxy座標を取得する方法

分類Dev

Angularディレクティブ内のリンク関数で「this」がnullになるのはなぜですか?

分類Dev

anglejsディレクティブの関数として属性をトリガーします

分類Dev

特定のタイプの要素コンテンツにのみディレクティブを適用する方法

分類Dev

anglejsディレクティブでAPI名を取得する方法

分類Dev

別のディレクティブ内の要素を処理するための属性ディレクティブ

分類Dev

v-forディレクティブを使用してVueJSで複数のルート要素をレンダリングする方法

分類Dev

バウンディングボックスの座標を変更する方法

分類Dev

角度ディレクティブで現在のdom要素を取得する方法

Related 関連記事

  1. 1

    anglejsディレクティブリンク関数の要素クラスを変更します

  2. 2

    ディレクティブ内の要素幅を角度の方法で取得する

  3. 3

    ディレクティブのリンク関数からDOM階層の要素を取得します[AngularJS]

  4. 4

    同じディレクティブのリンク関数内でディレクティブコントローラーの関数を使用する

  5. 5

    ディレクティブとコンポーネント内の要素の幅/高さを取得する方法は?

  6. 6

    anglejsのディレクティブ関数内で現在のController $ scopeを取得するにはどうすればよいですか?

  7. 7

    anglejs-テンプレート内のディレクティブ要素をコピーします

  8. 8

    anglejsおよびrequirejsを使用する場合のディレクティブレンダリング遅延

  9. 9

    複数の値 (文字列、数値、配列など) を anglejs の要素ディレクティブに渡す方法

  10. 10

    ディレクティブのリンク関数の動作をテストする方法

  11. 11

    ngClickディレクティブ内の要素を取得します

  12. 12

    要素の .html() 内のコントローラー関数に引数を渡す角度ディレクティブ

  13. 13

    Angular [innerHtml]:[innerHtml]ディレクティブを使用して要素内に追加の要素をレンダリングする方法

  14. 14

    AngularディレクティブのLink関数内でCSSスタイルを設定する方法

  15. 15

    ngIfがhtml要素のレンダリングを終了したらngIf内でディレクティブをトリガーする方法は?

  16. 16

    anglejsでタブが選択されている場合にのみ関数(またはディレクティブ)を呼び出す方法は?

  17. 17

    Angularjs-ディレクティブ内のネストされた要素に関数を割り当てる方法

  18. 18

    複数の座標境界でフィルタリングするmysqlクエリ

  19. 19

    内部配列内の要素でオブジェクトの配列をフィルタリングする方法 - 関数型プログラミング Javascript

  20. 20

    AngularJSディレクティブ内のトランスクルージョンされた要素をクリックして関数を呼び出す

  21. 21

    検出された面のバウンディングボックスのxy座標を取得する方法

  22. 22

    Angularディレクティブ内のリンク関数で「this」がnullになるのはなぜですか?

  23. 23

    anglejsディレクティブの関数として属性をトリガーします

  24. 24

    特定のタイプの要素コンテンツにのみディレクティブを適用する方法

  25. 25

    anglejsディレクティブでAPI名を取得する方法

  26. 26

    別のディレクティブ内の要素を処理するための属性ディレクティブ

  27. 27

    v-forディレクティブを使用してVueJSで複数のルート要素をレンダリングする方法

  28. 28

    バウンディングボックスの座標を変更する方法

  29. 29

    角度ディレクティブで現在のdom要素を取得する方法

ホットタグ

アーカイブ