It looks like your heatmap is a raster-layer, isn't it (heatmaps can be rendered from point-layers as well)? A more elegant way to achieve transparency here: in the layer properties, go to transparency, select white (or any other background-color) to transparent. Use the add values tool to select the color you want to be transparent directly from the image (or add add values manually). You can add as many colors as you wish to be transparent.
You might want to use layer blending modes (layer properties, symbolisation tab, blending modes) to make your background map to be visible (show through) where your heatmap "peaks" are - try e.g. blending-mode multiply
and adjust brightness, saturation, contrast.
Screenshot: Heatmap, created with a heatmap symbol rendering of a point layer. Select the color ramp and reduce the transparency of the leftmost color to complete transparency (above, red arrows). Also set the layer blending mode to muliply
(below):