0

I want to change src value using mouse over events. How we can do it in angular 4 or above version? Please help me.

HTML

    <li class="ci-inline-flex ci-flt-l width100 tooltip ci-cursor" *ngFor="let menu of menuData;let i=index" [ngClass]="{'ci-bgclr-18 ci-border-radius-5': selectedItem == i, 'disabled': disabledVal == i, 'disabled': headerdisplay == false && menu.menuName == 'Encounter'}" (click)="reDirectTo(menu.route,menu.routeTyPe, menu.menuName,i)" (mouseover)='over(i)' (mouseout)='out(i)'>
                  <div class=" ci-pb-5">
                    <div class="ci-pl-20 ci-pr-20" [ngClass]="menuList ? 'ci-pt-10' : ''">
                      <div [hidden]="selectedItem == i"><img src="{{menu.icon}}"/></div>
                      <div [hidden]="selectedItem != i"><img src="{{menu.activeIcon}}" /></div>
                      <div [hidden]="menuName == 'Encounter' && menuName == 'Clinical Trials' && menuName !== 'Case Summary'" class="ci-position-absolute" 
                      style="top:-3%; left: 63%;"><img src="{{menu.betaIcon}}" />
                      </div>
                    </div>
                    <p [ngClass]="menuList ? 'menutext' : ''" [hidden]="selectedItem == i" class="menuname_inactive">{{menu.menuText}}</p>
                    <p [ngClass]="menuList ? 'menutext' : ''" [hidden]="selectedItem != i" class="menuname_active" >{{menu.menuText}}</p>
                  </div>                  
                      <p *ngIf="menuList" [ngClass]="{'ci-clr-1': selectedItem == i}" class="ci-sec-head ci-pt-15 ci-pb-15 ci-pl-20 ci-pr-20">{{menu.menuName}}</p>
                      <span *ngIf="tooltipView" class="ci-sec-head tooltiptext">{{menu.menuName}}</span>
                </li>

JS

Here is my json from .ts file.

    {
      "icon": '../assets/icons-set/menu-icons/casesummary_normal.svg',
      "activeIcon": '../assets/icons-set/menu-icons/casesummary_active.svg',
      "menuName": 'Case Summary',
      "route": "/app/tabs/(patientcasesummary:patientcasesummary)",
      "routeTyPe": "",
      "menuText": 'Case Summary'
    }
0

3 Answers 3

1

By using mouseover() and mouseout() event on <img> like

<img [src]="myImgSrc" (mouseover)="myImgSrc = menuData.activeIcon (mouseout)="myImgSrc = menuData.icon"/>
Sign up to request clarification or add additional context in comments.

1 Comment

Its partially working. It works for me when i hover on menu items and once i clicked on any menu item that time also change icon and after mouse moving from clickable item then (mouseout) event is fire and again change my icon.
0

try this

html

<img [src]="imgSrc"
           (mouseover)="imgSrc = menuData.activeIcon"
           (mouseout)="imgSrc = menuData.icon">

NB: dont forget to initialise imgSrc variable in your component

4 Comments

How to initialise imgSrc variable in my component?
add this line in component class public imgSrc:string = this.menuData.icon
@shirishlakhe pls mark it as accept answer if its working for you
Its partially working. It works for me when i hover on menu items and once i clicked on any menu item that time also change icon and after mouse moving from clickable item then (mouseout) event is fire and again change my icon
0

It works for me with the below code. Using (mouseout)="menu.src = ''". And adding "src":"" in .ts file.

HTML

    <li style="margin-bottom: 3px;" class="ci-inline-flex ci-flt-l width100 tooltip ci-cursor" *ngFor="let menu of menuData;let i=index" 
[ngClass]="{'ci-bgclr-18 ci-border-radius-5': selectedItem == i, 'disabled': disabledVal == i, 'disabled': headerdisplay == false && menu.menuName == 'Encounter'}" 
(click)="reDirectTo(menu.route,menu.routeTyPe, menu.menuName,i,$event)" (mouseover)="menu.src = menu.activeIcon" 
(mouseout)="menu.src = ''">
    <div class=" ci-pb-5">
       <div class="ci-pl-20 ci-pr-20" [ngClass]="menuList ? 'ci-pt-10' : ''">
          <div [hidden]="selectedItem == i"><img [src]="menu.src || menu.icon"/></div>
          <div [hidden]="selectedItem != i"><img [src]="menu.src || menu.activeIcon"/></div>
          <div [hidden]="menuName == 'Encounter' && menuName == 'Clinical Trials' && menuName !== 'Case Summary'" class="ci-position-absolute" 
             style="top:-3%; left: 63%;"><img src="{{menu.betaIcon}}" />
          </div>
       </div>
       <p [ngClass]="menuList ? 'menutext' : ''" [hidden]="selectedItem == i" class="menuname_inactive">{{menu.menuText}}</p>
       <p [ngClass]="menuList ? 'menutext' : ''" [hidden]="selectedItem != i" class="menuname_active" >{{menu.menuText}}</p>
    </div>
    <p *ngIf="menuList" [ngClass]="{'ci-clr-1': selectedItem == i}" class="ci-sec-head ci-pt-15 ci-pb-15 ci-pl-20 ci-pr-20">{{menu.menuName}}</p>
    <span *ngIf="tooltipView" class="ci-sec-head tooltiptext">{{menu.menuName}}</span>
    </li>

TS

Here is my json from .ts file.
public menuData: any = [
    {
      "icon": '../assets/icons-set/menu-icons/casesummary_normal.svg',
      "activeIcon": '../assets/icons-set/menu-icons/casesummary_active.svg',
      "menuName": 'Case Summary',
      "route": "/app/tabs/(patientcasesummary:patientcasesummary)",
      "routeTyPe": "",
      "menuText": 'Case Summary',
      "src":""
    }
]

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.