2017-09-02 5 views
0

Ich möchte den Effekt, der hier ist https://jumpshare.com/ in dem Abschnitt "Capture und alles schnell teilen", wenn Sie den linken Text, in der rechten blcok erscheint anderes Bild neu erstellen. Ich weiß es zu tun, wenn das Element im gleichen Block ist, aber wie kann ich es machen, wenn sie in den separaten Divs sind?Wie man Bild im div zeigt, irgendein Element überhoben?

Ich versuchte dies:

<div href="#" class='text'> 
    Hover me 
</div> 
<div class='image'> 
    Show me 
</div> 

image{ 
    display: none; 
} 
.text:hover .image{ 
    display: block; 
} 
+1

Sie benötigen Javascript dafür. Hast du bisher irgendwas versucht? – Dekel

+0

Was hast du bisher selbst versucht? ** Bitte lesen Sie [Wie viel Forschungsaufwand von Stack Overflow-Benutzern erwartet wird] (https://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-sected-of-stack-overflow-users) **. Vor der Veröffentlichung * sollten Sie Ihr Problem recherchiert und einen guten Versuch unternommen haben, den Code selbst zu schreiben *. Wenn Sie an etwas * Besonderem * hängen bleiben, kommen Sie zurück und fügen Sie eine Zusammenfassung dessen, was Sie versucht haben, und den entsprechenden Code in ein [minimales, vollständiges und verifizierbares Beispiel] (https://stackoverflow.com/help/mcve) ein dass wir helfen können. – FluffyKitten

+0

Warum arte du einfach Minuspunkte und hast nicht versucht zu helfen? !!! Wenn ich Frage auf stackoverflow schreibe bedeutet es, dass ich alle möglichen Varianten ausprobiert habe – rick1

Antwort

2

Die Website eine separate CSS-Klasse aufgelistet verwendet, die jedem div hinzugefügt wird, wenn der Benutzer schwebt. Sie betitelten ihre Klasse "ausgewählt". Im Folgenden erfahren Sie, wie Sie mithilfe von jquery Klassen hinzufügen und entfernen, um diesen Effekt zu erzielen.

CSS

Erstellen Sie zunächst die Stylings Sie möchten Ihre div anzuwenden, wenn jemand darüber bewegt:

.selected { 
    background-color: lightblue; 
    color: blue; 
    font-weight: 700; 
} 

jquery

Dann machen Sie eine jquery Funktion für das Schweben auf jedem div, das die "ausgewählte" Klasse beim Schweben anwendet und es entfernt, wenn Sie auf anther div zeigen.

$('.hoverdivs div').on('hover', function() { 
    var selected = $('.hoverdivs div.selected'); 
    selected.removeClass('selected'); 
    $(this).addClass('selected'); 
}); 

HTML

Und hier ist es, was die HTML wie für meine hypothetische Code aussieht:

<div class="hoverdivs"> 
    <div class="hoverdiv1"> 
    </div> 
    <div class="hoverdiv2"> 
    </div> 
    <div class="hoverdiv3"> 
    </div> 
    <div class="hoverdiv4"> 
    </div> 
</div> 

Seien Sie sicher, dass Ihre ursprüngliche Formatierung auf die divs zu übernehmen und sie mit Inhalt füllen! Hoffe das hilft.

1

Lösung No.1 es CSS zu verwenden:

.text:hover + .image { 
    display: block; 
} 

+ bedeutet I Nachbar Selektor nennen, die neben dem Gegenstand Element das Element auswählt. Note: this only works if the elements sits beside each other.

Lösung Nr. 2 ist zu verwenden JavaScript | jQuery:

// when pointer hovers the element 
document.querySelector(".text").addEventListener("mouseenter", function() { 
    document.querySelector(".image").style.display = "block"; 
}); 

// when pointer leaves the element 
document.querySelector(".text").addEventListener("mouseleave", function() { 
    document.querySelector(".image").style.display = "none"; 
}); 

// jQuery: onenter 
$(".text").on("mouseenter", function() { 
    $(".image").css("display", "block"); 
}); 

// jQuery: onleave 
$(".text").on("mouseenter", function() { 
    $(".image").css("display", "none"); 
}); 

da Sie eine Funktion in Ihrem Beispiel Webseite kopieren versuchen, sollten Sie mehrere Event-Listener anhängen, die verschiedene Bilder angezeigt werden soll.

Hoffnung, das hilft.

Verwandte Themen