Ich versuche zu erkennen, wenn mein div geöffnet wird, ist die Oberseite davon außerhalb der Ansicht-Port &, wenn es eine Klasse hinzufügen, um die CSS anzupassen.jQuery erkennen, ob div ist außerhalb der Ansicht Port vertikal
Also im Grunde in diesem Beispiel auf Schwebeflug Hälfte des div fehlt, so dass sollte dann die Klasse hinzufügen, die das div grün schalten würde. Weil der Code erkennen soll, dass sich das Div außerhalb des Darstellungsbereichs befindet.
Aber ich kann es nicht synchronisieren. Ich mache hier offensichtlich etwas falsch.
UPDATE
Ich habe gerade festgestellt, dass es sowohl geschieht technisch funktioniert, was, wenn die oberen und unteren Rand des div außerhalb der beiden unteren und oberen Rand des Hafenblick geht dann löst es. Ich brauche es nur auszulösen, wenn es aus der Spitze geht.
$(document).on("mouseenter", ":has('.infotip')", function() {
$(this).children(".infotip").addClass("active");
});
$(document).on("mouseleave", ":has('.infotip')", function() {
$(this).children(".infotip").removeClass("active");
});
// Infotip on screen
$(document).on("mouseenter", ":has('.infotip.onscreen')", function() {
var $target = $(this).children(".infotip");
if ($target.length) {
var $bounce = $target.offset().top + $target.height();
if ($bounce > $(window).height()) {
$target.addClass("test");
} else {
$target.addClass("top");
}
}
});
.infotip {
display: none;
height:500px;
width:100px;
position:absolute;
left:50px;
top:-250px;
}
.infotip.active {
display: block;
}
/* goes red when past top of viewport (which it will not do in this example) */
.infotip.top {
background-color: rgba(249, 14, 18, 1.00)
}
/* goes green if visible (which it should do when hovering) */
.infotip.test {
background-color: rgba(35, 223, 51, 1.00)
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<div class="team-card align">
hover me
<div class="infotip onscreen">
Iam infotip
</div>
</div>
Ich nehme an, Sie dies nie getestet, wie es wirklich nicht alles tun. Alles, was Sie getan haben, ist meine Auswähler zu ändern. – DCdaz
@DCdaz Ich habe Änderungen in Ihrem Selektor vorgenommen, da ich überprüfen muss, dass, wenn Höhe von .infotip erlischt, es grün werden sollte. Also .infotip ist, was ich anvisieren muss. – frnt
alles, was Sie getan haben, ist es, den Selektor zu ändern, der nichts anderes bewirkt. – DCdaz