Jestem dość nowy w Angularjs i pracuję nad projektem, który jest bardzo restrykcyjny wobec zależności zewnętrznych; W rzeczywistości, bootstrap jest wykluczony, a jednak muszę wdrożyć dyrektywę "podpowiedzi".

Próbuję to zrobić za pomocą zdarzeń MOVEENTER i MouseLeave, ale zastanawiam się, jak mogę korzystać z własnego atrybutu dyrektywy jako treści podpowiedzi?

Byłoby tak używane:

<a id='someLink' my-tooltip='The content that I want to show'>Trigger</a>

Bycie dość zielonym rozwoju interfejsu użytkownika, czy ktoś może mi powiedzieć, jak mogłem dodać niezbędne HTML / CSS, aby dokonać tej pracy poprzez dyrektywę?

0
javabeats 13 sierpień 2014, 22:18

2 odpowiedzi

Najlepsza odpowiedź

Demo

app.directive("tooltip", function () {
  return {
    link: function (scope, element, attrs) {

        $(element).on("mouseover", function () {
            $(this).append("<span>"+ attrs.tooltip +"</span>");
        });

        $(element).on("mouseout", function () {
            $(this).find("span").remove();
        });

        scope.$on("$destroy", function () {
            $(element).off("mouseover");
            $(element).off("mouseout");                
        });
    }
  };
});

CSS Źródło

a.tooltips {
  position: relative;
  display: inline;
}
a.tooltips span {
  position: absolute;
  width:140px;
  color: #FFFFFF;
  background: #000000;
  height: 30px;
  line-height: 30px;
  text-align: center;
  visibility: hidden;
  border-radius: 6px;
}
a.tooltips span:after {
  content: '';
  position: absolute;
  top: 50%;
  right: 100%;
  margin-top: -8px;
  width: 0; height: 0;
  border-right: 8px solid #000000;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
}
a:hover.tooltips span {
  visibility: visible;
  opacity: 0.8;
  left: 100%;
  top: 50%;
  margin-top: -15px;
  margin-left: 15px;
  z-index: 999;
}
1
Darshan P 13 sierpień 2014, 18:40

Jest to krótsza wersja, której używam:

PIAPP.directive('piTooltip', function(){
    return function($scope, element, attrs){
        element.append('<u>'+attrs.piTooltip+'</u>');
    };
});

CSS:

*[pi-tooltip]>u{
    visibility: hidden;
    opacity: 0;
    font-size: 12px;
    padding: 0 5px;
    background: #f6e6c2;
    border: 1px solid #000;
    color: #000;
    z-index: 1000;
    white-space: nowrap;
    text-decoration: none;
    position: absolute;
    bottom: -2em;
    left: 0;
    transition: opacity 0.5s linear 0.5s, visibility 0s;
}
*[pi-tooltip]:hover>u{
    visibility: visible;
    opacity: 1;
}

Możesz go używać w dowolnym pojemniku (A, rozpiętość, div itp.) Lubię to:

<div pi-tooltip="The content that I want to show">...</div>

Pokaż demo nr Fiddle

0
WPomier 3 listopad 2016, 01:12