我目前有一张地图.在这张地图上,我用border-radius创建了几个小圆圈/圆点.徘徊一个点动画点其他东西. 我的问题: 现在我必须非常精确地徘徊一个点,因为它太小了. 我想知道是否有可能
我的问题:
现在我必须非常精确地徘徊一个点,因为它太小了.
我想知道是否有可能创建一个更大的隐形hitzone悬停区域或类似的点周围,从而更容易与点交互?
这是一个example:
$("#map-container").find(".dot-item")
.mouseenter(function() {
console.log("over");
$(this).css("width","10");
$(this).css("height","10");
})
.mouseleave(function() {
console.log("out");
$(this).css("width","5");
$(this).css("height","5");
}).on("click", function(e) {
console.log("click");
});
#wrapper {
position: relative;
width: 500px;
height: 500px;
background-color: gray;
}
.dot-item {
position: absolute;
border-radius: 50%;
width: 5px;
height: 5px;
background-color: red;
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="wrapper">
<div id="map-container">
<div class="dot-item" style="top: 100px; left: 100px;"></div>
<div class="dot-item" style="top: 200px; left: 200px;"></div>
<div class="dot-item" style="top: 210px; left: 210px;"></div>
<div class="dot-item" style="top: 400px; left: 400px;"></div>
</div>
</div>
您可以使用位于点上方的透明伪元素创建更大的悬停区域:
.dot-item:before{
content:'';
position:absolute;
top:-300%; left:-300%;
width:700%; height:700%;
border-radius:50%;
}
这是完整的代码:
$("#map-container").find(".dot-item")
.mouseenter(function() {
console.log("over");
$(this).css("width", "10");
$(this).css("height", "10");
})
.mouseleave(function() {
console.log("out");
$(this).css("width", "5");
$(this).css("height", "5");
}).on("click", function(e) {
console.log("click");
});
#wrapper {
position: relative;
width: 500px;
height: 500px;
background-color: gray;
}
.dot-item {
position: absolute;
border-radius: 50%;
width: 5px;
height: 5px;
background-color: red;
cursor: pointer;
}
.dot-item:before {
content: '';
position: absolute;
top: -300%;
left: -300%;
width: 700%;
height: 700%;
border-radius: 50%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="wrapper">
<div id="map-container">
<div class="dot-item" style="top: 100px; left: 100px;"></div>
<div class="dot-item" style="top: 200px; left: 200px;"></div>
<div class="dot-item" style="top: 210px; left: 210px;"></div>
<div class="dot-item" style="top: 400px; left: 400px;"></div>
</div>
</div>
尺寸可能过大,但你明白了.
