Question: I have some images in a grid-like area and when one is hovered over I would like it so the text on the left-hand side of the screen changes to a predefined description of that image, for every image it will do this and display the text in the same area. Any help would be much appreciated I've been trying to get it for hours now.

The text needs to be displayed in the same area. so if I hover over a lake, the lakes desc will be displayed in another box (let's call it desc box). then if I hover over a duck the desc of that duck will be displayed in that same desc box.

Is there any way using onmouseover to set 

 to show text depending whats being hovered over. so if A duck image is being hovered over the predefined text lets say var DuckImage="A duck is an animal"; is displayed in HoverOverDesc when that duck image is hovered over.

Answer: 
If I understand your question, you want a grid of images to the right on the screen, where each image has predefined text that is displayed on the left side of the screen if the user hovers that image.

This can be achieved via CSS and HTML, without any JavaScript as shown below. Please see the comments in the snippet for further explanation:

```css
.grid {
  /* Put 50% white space to the left of the image grid
  which provides the space for descriptions to appear */
  padding-left:50%;

  /* Specify a basic grid layout for images in the grid */
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 10px;
}

.grid img {
  /* Cause each image to not exceed the grid cell's width */
  max-width:100%;
}

.grid a p {
  /* With width of description cannot exceed half page width. If text
  description is too long, this causes it to wrap onto multiple lines
  at the 50% point */
  width:50%;

  /* Fixed position ensures the description is placed at top left of
  screen (by default) regardless of scroll position */
  position:fixed;
  top:0;
  left:0;

  /* Do not show description by default */
  display:none;
}

.grid a:hover p {

  /* When hovering the a around an image, cause it's description to
  be shown */
  display:block;
}
```

```html
<div class="wrapper">

  <div class="grid">
    <a href="#">
      <p>Pre defined text for blue image</p>
      <img src="https://via.placeholder.com/350/00f.png" alt="blue" />
    </a>
    <a href="#">
      <p>Pre defined text for red image</p>
      <img src="https://via.placeholder.com/350/f00.png" alt="red" />
    </a>
    <a href="#">
      <p>Pre defined text for green image</p>
      <img src="https://via.placeholder.com/350/0f0.png" alt="green" />
    </a>
    <a href="#">
      <p>Pre defined text for yellow image. Lots of text can be specified, 
      which will wrap on to a new line.</p>
      <img src="https://via.placeholder.com/350/ff0.png" alt="green" />
    </a>
  </div>
</div>
```
```
<img src="Images/duck.png" width="450" height="auto" onmouseover="document.getElementsByName('HoverOverInfo2')[0].innerHTML = 'A Duck'" onmouseout="document.getElementsByName('HoverOverInfo2')[0].innerHTML = ' '" />

    <img src="Images/car.png" width="450" height="auto" onmouseover="document.getElementsByName('HoverOverInfo2')[0].innerHTML = 'A Car'" onmouseout="document.getElementsByName('HoverOverInfo2')[0].innerHTML = ' '" />

```

Some where else

```
<h4 class="w3-bar-item"><b>Description</b></h4>
    <div style="margin-left:8px">
   <p id="HoverOverInfo" name=></p>

```

This worked perfectly for me!