Я знаю, что есть много похожих вопросов, подобных этому, я искал и пытался часами, но не повезло.Наведите указатель мыши на один из нескольких div и задержите, затем опустите ребенка div
То, что я пытаюсь сделать, это просто, есть множественный блок в моей странице, как этот и .description
класса появится, если пользователь парить на .frame
элемент
<div class="row">
<div class="col-xs-4">
<div class="frame">
<div class="description">
<h3>Title</h3>
<p>Description</p>
</div>
</div>
</div>
<div class="col-xs-4">
<div class="frame">
<div class="description">
<h3>T2</h3>
<p>Description</p>
</div>
</div>
</div>
</div>
Я думаю, что это очень раздражает, когда пользователь прокручивается по экрану, и каждое описание запускается, поэтому я попытался добавить «условие задержки» до setTimeout()
, таким образом, только когда пользователь останавливается на одном блоке по крайней мере на 1сек, появляется всплывающее окно
Но это просто не " t хорошо, и вот мой Demo
Это лучшее, что я могу сделать, функция задержки работает, но, похоже, на ней есть два триггера.
JQuery код:
var timer;
$(document).ready(
function(){
$(".frame").hover(
function() {
var descrip_in=$(".description",$(this))
timer = setTimeout(function(){descrip_in.slideToggle();}, 1000);
},
function() {
var descrip_out=$(".description",$(this))
clearTimeout(timer);
descrip_out.slideToggle(1000)
}
);
}
);
Что именно проблема с этим? Какое поведение вы ожидаете? –
Я хочу, чтобы '.description' всплывал только тогда, когда пользователь зависал в' frame' за 1сек; в демо, он все равно получил триггер, когда вы пронеслись над ним (извините за плохую грамматику) –
@DennisKao проведите по экрану, вы имеете в виду, что указатель мыши остается в кадре и вне рамки ... или вы тестируете его на мобильном телефоне для салфетки? – Lucky