Ich setze einen Bildaufdeckungs-Effekt auf meiner Seite ein, aber es scheint nicht richtig zu funktionieren.CSS-Clip-Effekt funktioniert nicht richtig
Die Website enthält mehrere Kategorien, die beim Anklicken automatisch die Bilder der Kategorie in eine Diashow laden.
Wenn Sie auf eines der Bilder in der Diashow klicken, erscheint ein modales Bild mit einem anderen Bild darunter.
Ab sofort funktioniert meine Clip-Funktion, aber aus irgendeinem Grund beginnt der Clip bei 340px (also macht es das ganze Bild, weil das Bild 280px ist) im Gegensatz zu 0px und bewegt sich dann in einem Bereich von 0 -280px.
Kann jemand meinen Code überprüfen und sehen, was falsch ist?
function reveal(event) {
event.target.previousElementSibling.style.clip = "rect(0px, "+(event.clientX-event.target.offsetLeft)+"px, 280px, 0px)";
}
.reveal{
width: 280px;
height: 280px;
border:#000 1px solid;
float:left;
margin:24px;
}
.reveal > img {
position:absolute;
}
.reveal > .modalimg2 {
clip:rect(0px, 140px, 280px, 0px); /* top, right, bottom, left */
}
.reveal > .activator{
position:absolute;
width:280px;
height:280px;
opacity:0;
cursor: e-resize;
}
<div id="myModal" class="modal">
<div class="modal-dialog">
<div class="modal-content">
<div class = "reveal">
<!-- Modal Content (The Image) -->
<img src="" id = "mimg" class = "modalimg" width = "280px" height = "280px">
<img src="" id = "mimg2" class = "modalimg2" width = "280px" height = "280px">
<div class = "activator" onmousemove = "reveal(event)"></div>
</div>
</div>
</div>
</div>
Es ist nicht 100% klar, was Sie hier erreichen wollen. "Clipping" kann abhängig von der Sprache, die Sie verwenden, eine Reihe verschiedener Dinge bedeuten. jQuery hat eine Clip-Effekt-Methode gebacken, die ich erwarte, sollte erreichen, was Sie suchen mit erheblich weniger CSS und Javascript. Siehe diesen Link: https://api.jqueryui.com/clip-effect/ –