My image does not get transparent all the way!

Hello!

Mm having some trouble to get my image transparent all the way, when my character goes on a trigger collider a image should pop up and the disappear when exiting the trigger but when exiting the trigger the image has an alpha of 4, but sometimes it does go down to 0 but i dont know why it somtimes does not go down all the way to 0.

Here is my code for the trigger.
(fading code is in the end )

using System.Collections;
using UnityEngine;
using UnityEngine.UI;

public class jump_triggers : MonoBehaviour


{
  
    public bool onTrigger;
    public Image img;
    public Canvas Canvas_use;
    public Transform player;
   static int y; // trigger once

    
    private void Awake()
    {
      
        Canvas_use.enabled = false;

    }

    // when entring the collider show the canvas
    void OnTriggerEnter(Collider coll)
    {
        if (coll.gameObject.tag == "Player" && y == 0)
        {
            onTrigger = true;
            Canvas_use.enabled = true;
            Debug.Log("test");
            StartCoroutine(FadeImage(false));
        }
        else
        {
            Canvas_use.enabled = false;
        }
    }

    //when exiting the collider change to default
    void OnTriggerExit(Collider coll)
    {

        if (coll.gameObject.tag == "Player" && y == 0)
        {
            onTrigger = false;
            Canvas_use.enabled = true;
            StartCoroutine(FadeImage(true));
        }
        else
        {

            Canvas_use.enabled = false;
        }
        y++; // trigger once
    }
    IEnumerator FadeImage(bool fadeAway)
    {
        // fade from opaque to transparent
        if (fadeAway)
        {
            // loop over 1 second backwards
            for (float i = 3; i >= 0; i -= Time.deltaTime) // fade speed (i)
            {
                // set color with i as alpha
                img.color = new Color(1, 1, 1, i);
                yield return null;
            }
        }
        // fade from transparent to opaque
        else
        {
            // loop over 1 second
            for (float i = 0; i <= 1; i += Time.deltaTime)
            {
                // set color with i as alpha
                img.color = new Color(1, 1, 1, i);
                yield return null;
            }
        }
    }
}

You should log what (3-Time.deltaTime) returns and you will get your answer as to why your image is not fading away.