The approach is to use two divs. The outer or container div has a background image assigned through CSS. The inner div contains the text, and is hidden (display:none) on page load. The inner div uses a white background, with opacity to mute the background image and make it easier to view the image.
On hover, the inner div is changed to display:block.
The code was written to run within a loop, hence the 1 on the ids.