2017-01-04 1 views
0

Ich kann Dateibild und Titel bei mouseovering für die jeweilige Datei anzeigen. Aber für alle Dateinamen werden das Bild und der Titel an der gleichen Stelle angezeigt.So zeigen Sie ein Bild mit Mouseover über dem jeweiligen Dateinamen an - angularjs

Ich muss das jeweilige Bild und Titel oben auf den jeweiligen Dateinamen anzeigen. Wenn die Seite geladen wird, habe ich diese kleine Schachtel gesehen. Ich weiß nicht warum.

Initially

Nach Mouseover auf dem ersten Dateinamen oder zweite Dateinamen bewegen, wird es wie unten das Bild und Titel in der gleichen Stelle angezeigt werden soll.

image on mouseover

HTML:

<style> 
.hover-image { 
     width: 30px; 
     height: 30px; 
     border-radius: 20%; 
     position: absolute; 
     margin-top: -10px; 
    margin-left: 5px; 
    } 

    img.hover-image { 
     border: none; 
     box-shadow: none; 

    } 

    .hover-title { 
     color:black; 
     position: absolute; 
     margin-top: -20px; 
    } 

</style> 

<div class="file-image-tags1"> 
      <ul> 
       <span style="width: 200px;"><a ng-show="hideHoveredImage==false;" class="hover-title">{{hoverTitle}}<img class="hover-image" src="{{hoveredImage}}"></a></span> 
       <li ng-repeat="image in files | filter :'image'" > 

        <div class="file-tag-baloon1" ng-mouseover="hoverImg(image.id)" ng-mouseleave="hoverOut()"> 
         <span> 


          <a ng-click="photoPreview(image.id);" >{{image.fileshortname}}</a> 

         </span> 
         <span><a ng-click="removeImage(image.id)" class="remove1">X</a></span> 
        </div> 
       </li> 
      </ul> 
     </div> 
+2

Können Sie eine Geige machen und den Link teilen? –

+0

Können Sie ng-show zu ng-if ausprobieren? –

+0

Es funktioniert wie zuvor. Keine Änderungen werden gesehen. Mein Wert wird an einem konstanten Ort angezeigt. – kalai

Antwort

1

Gebrauch machen, Schauen Sie sich die folgenden Code

HTML

<span ng-hide="show"> 
    <img ng-src="https://unsplash.it/200/300/?random" /> 

    </span> 
    <br/> 
    <span ng-mouseover="show=!show" ng-mouseleave="show=!show"> 
    Image name </span> 

Winkelregler

var app = angular.module('plunker', []); 

app.controller('MainCtrl', function($scope) { 

    $scope.show="false"; 
}); 

Update 1:

Basierend auf den Kommentar, den ich aus folgendem Grund aktualisiert

Winkelregler

var app = angular.module('plunker', []); 

app.controller('MainCtrl', function($scope) { 

    $scope.show = "false"; 
    $scope.arrayofJson = [{ 
     imageTitle: "someImageName1", 
     imagePath: "http://lorempixel.com/400/200/", 
     show: "false" 
    }, { 
     imageTitle: "someImageName2", 
     imagePath: "https://unsplash.it/200/300/?random", 
     show: "false" 
    }, { 
     imageTitle: "someImageName3", 
     imagePath: "https://unsplash.it/200/300/?random", 
     show: "false" 
    }, { 
     imageTitle: "someImageName4", 
     imagePath: "https://unsplash.it/200/300/?random", 
     show: "false" 
    } 


    ]; 
}); 

HTML

<div ng-repeat="item in arrayofJson"> 
    <span ng-hide="item.show"> 
    <img ng-src="{{item.imagePath}}" /> </span> 
    <br/> 
    <span ng-mouseover="item.show=!item.show" ng-mouseleave="item.show=!item.show"> 
    {{item.imageTitle}} </span> 

    </div> 

Der Plunker bleibt gleich und es wird aktualisiert. Schauen Sie sich die LIVE DEMO

+0

Ich bekomme das Bild, aber für alle Dateien werden die Bilder an einem festen Ort angezeigt. Es sollte jedoch oberhalb des jeweiligen Dateinamens angezeigt werden. – kalai

+0

@kalai war diese Antwort hilfreich? – Aravind

+0

ja. Ich danke dir sehr. – kalai

0

Try -

.file-image-tags1 
{ 
position : absolute; 
} 
+0

Keine Änderungen festgestellt. Seine Anzeige wie zuvor. – kalai

+0

Ich möchte das Bild und den Titel der Datei über Dateiname anzeigen. wenn Benutzer mouseover auf Dateiname. Da ich ng-repeat verwende, um alle Dateien anzuzeigen. So zeigen Sie das Bild und den Titel über dem jeweiligen Dateinamen an. – kalai

+0

Ich bitte Sie, bitte fügen Sie weitere Kontext um Ihre Antwort hinzu.Code-Only- oder Link-Only-Antworten sind schwer zu verstehen. Es wird sowohl dem Fragesteller als auch zukünftigen Lesern helfen, wenn Sie in Ihrem Beitrag weitere Informationen hinzufügen können. – RBT

0

können Sie tun dies mit ng-if ng-Show/verstecken wie Beispiel unten.

$scope.hoverIn = function(){ 
    this.hoverImage = true; 
}; 

$scope.hoverOut = function(){ 
    this.hoverImage = false; 
}; 

<ul> 
<span ng-mouseover="hoverIn()" ng-mouseleave="hoverOut()">Hover Me</span> 
     <span ng-show="hoverImage"> 
      <img>.....</a> 
     </span> 
    </li> 
</ul> 

in Funktion können Sie den Dateinamen übergeben und Sie können die in den Richtlinien gebaut Winkel viel mehr

Verwandte Themen