Reputation: 367
The trouble is huge but a task is very simple.
I have a background image with the small flower on it. I need some action to be done when user press on it. However flower is placed on totally different areas of a screen depending of screen's resolution.
How could I connect "small flower" with a hover zone for a:href?
<style>
body {
background-image: url(images/bg.jpg);
}
</style>
<body>
<div>
<h1><a href=#>press it where small flower is situated on an page</a></h1>
</div>
</body>
Let me give you an example. So I need DIFFERENT WEBLINKS when orange flower was pressed or a blue one and third different weblink for white flowers and so on. If it is one screen I just divide it for some virtual squares but it absolutely rubbish to do so for many different resolutions:
Upvotes: 3
Views: 295
Reputation: 8599
crate a map
use Free Online Image Map Generator
set urls
generate code
<!-- Image Map Generated by http://www.image-map.net/ -->
<img src="l35x9.jpg" usemap="#image-map">
<map name="image-map">
<area target="_blank" alt="Yelow flower" title="Yelow flower" href="https://www.google.com/q=yelow+flower" coords="39,686,204,502" shape="rect">
<area target="_blank" alt="Yelow flower" title="Yelow flower" href="https://www.google.com/q=yelow+flower" coords="981,533,789,390" shape="rect">
<area target="_blank" alt="Pink+flower" title="Pink+flower" href="https://www.google.com/q=Pink+flower" coords="517,318,781,556" shape="rect">
<area target="_blank" alt="light pink flower" title="light pink flower" href="https://www.google.com/q=light+pink+flower" coords="449,438,21,278" shape="rect">
</map>
Live demo 1 - Code - click preview after you open
<!DOCTYPE html>
<html>
<head>
<title>HTML area Tag</title>
</head>
<!-- Image Map Generated by http://www.image-map.net/ -->
<img src="https://i.sstatic.net/l35x9.jpg" usemap="#image-map">
<map name="image-map">
<area target="_blank" alt="Yelow flower" title="Yelow flower" href="https://www.google.com?q=yelow+flower" coords="39,686,204,502" shape="rect">
<area target="_blank" alt="Yelow flower" title="Yelow flower" href="https://www.google.com?q=yelow+flower" coords="981,533,789,390" shape="rect">
<area target="_blank" alt="Pink+flower" title="Pink+flower" href="https://www.google.com?q=Pink+flower" coords="517,318,781,556" shape="rect">
<area target="_blank" alt="light pink flower" title="light pink flower" href="https://www.google.com?q=light+pink+flower" coords="449,438,21,278" shape="rect">
</map>
</body>
</html>
Live demo 2 - Code - click preview after you open
used imageMapResizer + jquery + bootstrap
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<title>Hello, world!</title>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-sm">
One of three columns
</div>
<div class="col-sm">
One of three columns
</div>
<div class="col-sm">
<!-- Image Map Generated by http://www.image-map.net/ -->
<img src="https://i.sstatic.net/l35x9.jpg" usemap="#image-map1" class="img-fluid" >
</div>
</div>
<div class="row">
<div class="col-sm">
One of three columns
</div>
<div class="col-sm">
<!-- Image Map Generated by http://www.image-map.net/ -->
<img src="https://i.sstatic.net/l35x9.jpg" usemap="#image-map2" class="img-fluid" >
</div>
</div>
<div class="row">
<div class="col-sm">
<!-- Image Map Generated by http://www.image-map.net/ -->
<img src="https://i.sstatic.net/l35x9.jpg" usemap="#image-map3" class="img-fluid" >
</div>
</div>
</div>
<map name="image-map1">
<area target="_blank" alt="Yelow flower" title="Yelow flower" href="https://www.google.com?q=yelow+flower" coords="39,686,204,502" shape="rect">
<area target="_blank" alt="Yelow flower" title="Yelow flower" href="https://www.google.com?q=yelow+flower" coords="981,533,789,390" shape="rect">
<area target="_blank" alt="Pink+flower" title="Pink+flower" href="https://www.google.com?q=Pink+flower" coords="517,318,781,556" shape="rect">
<area target="_blank" alt="light pink flower" title="light pink flower" href="https://www.google.com?q=light+pink+flower" coords="449,438,21,278" shape="rect">
</map>
<map name="image-map2">
<area target="_blank" alt="Yelow flower" title="Yelow flower" href="https://www.google.com?q=yelow+flower" coords="39,686,204,502" shape="rect">
<area target="_blank" alt="Yelow flower" title="Yelow flower" href="https://www.google.com?q=yelow+flower" coords="981,533,789,390" shape="rect">
<area target="_blank" alt="Pink+flower" title="Pink+flower" href="https://www.google.com?q=Pink+flower" coords="517,318,781,556" shape="rect">
<area target="_blank" alt="light pink flower" title="light pink flower" href="https://www.google.com?q=light+pink+flower" coords="449,438,21,278" shape="rect">
</map>
<map name="image-map3">
<area target="_blank" alt="Yelow flower" title="Yelow flower" href="https://www.google.com?q=yelow+flower" coords="39,686,204,502" shape="rect">
<area target="_blank" alt="Yelow flower" title="Yelow flower" href="https://www.google.com?q=yelow+flower" coords="981,533,789,390" shape="rect">
<area target="_blank" alt="Pink+flower" title="Pink+flower" href="https://www.google.com?q=Pink+flower" coords="517,318,781,556" shape="rect">
<area target="_blank" alt="light pink flower" title="light pink flower" href="https://www.google.com?q=light+pink+flower" coords="449,438,21,278" shape="rect">
</map>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
<script src="https://rawgit.com/davidjbradshaw/imagemap-resizer/master/js/imageMapResizer.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('map').imageMapResize();
});
</script>
</body>
</html>
</body>
</html>
html - Responsive image map - Stack Overflow
stowball/jQuery-rwdImageMaps: Responsive Image Maps jQuery Plugin
Responsive Image Maps jQuery Plugin
davidjbradshaw/image-map-resizer: Responsive HTML Image Maps
html - How using usemap in div background url - Stack Overflow
How to create clickable areas in an image in HTML
Upvotes: 4
Reputation: 7285
You need to do it manually.
Upvotes: 1
Reputation: 569
This answer will only work if the image is loaded within the tag. If the background image has the small flower and it moves around, you wont be able to identify when a user clicks the flower via an tag. You will need much a more sophisticated solution.
<a href="javascript:void(0);" onClick="alert('you clicked the image')">Image</a>
Upvotes: 1