Я хочу показать вертикальную линию, которая появится, когда мои диаграммы наведены и исчезнут, когда мышь выйдет из элементов диаграммы.Как ни странно, события mouseleave
и mouseout
, похоже, запускаются, когда мышь не движется или когда она движется вверх и вниз (а не из стороны в сторону), см. Фрагмент кода ниже.Я не хочу, чтобы линия исчезала, когда мышь останавливается, и я хочу, чтобы она отслеживала мышь, куда бы она ни шла.
Я пытался запустить код при наведении курсора, mouseenter
и mouseover
, но mousemove
(см. Код ниже) - единственное событие, которое непрерывно срабатывает при изменении положения курсора.
//$(document).ready(function() {
function showVerticalLine(e) {
var topBarHeight = 56;
var bottomHeight = 100;
var posX = $(this).offset().left;
var x = e.pageX;
var y = $(window).innerHeight();
//Change line so that it appears at the position of the cursor
$('.verticalTrackerLine').css({
'opacity': '1',
'left': x,
'top': topBarHeight,
'height': y - topBarHeight - bottomHeight + "px",
'transition': 'left 0.1s'
});
//Update string to show when the charts are being hovered over
$("#testSTRING").html('you are moving/hovering');
};
function hideVerticalLine(){
//Hide the line
$('.verticalTrackerLine').css({
'opacity': '0'
});
//Update string to show when the charts are being hovered over
$("#testSTRING").html('you have left');
}
$("#chart1").add("#chart2").mousemove(showVerticalLine);
$("#chart1").add("#chart2").mouseout(hideVerticalLine);
//})
.chart {
margin-top: 30px;
width: 100px;
height: 30px;
border: 1px solid black;
background-color: red;
}
.verticalTrackerLine {
border-left: 2px dashed RGB(68,74,79);
position: fixed;
z-index: 1;
opacity: 0;
}
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<SPAN id="testSTRING"></SPAN>
<SPAN class="verticalTrackerLine"></SPAN>
<DIV id="chart1" class="chart">Chart 1</DIV>
<DIV id="chart2" class="chart">Chart 2</DIV>
</head>
Любая помощь / предложения будут с благодарностью приняты.