Ich möchte, dass das fokussierte Element (meist mit der Tab-Taste Navigation) mit einem umgebenden Rechteck die Größe des Elements erscheint. Ich habe das passende div in html mit der entsprechenden css für border color und einem display none am Anfang der Navigation erstellt. Ich versuche, die Anzeige mit jquery (die Größe und die Position) zu ändern, aber etwas läuft falsch.Positionieren Sie einen Rahmen um fokussiertes Element
jQuery('*').focus(function() {
var position = jQuery(this).offset();
var width = jQuery(this).width();
var height = jQuery(this).height();
console.log(jQuery(this).width(), jQuery(this).height(), position);
jQuery('#focuser').fadeOut(0); //to have the div disappear if it is on other element
jQuery('#focuser').css({width: '2px', height: '2px'}); //to get an enlarging effect
jQuery('#focuser').offset({top: position.top, left: position.left});
jQuery('#focuser').fadeIn(100, function() {
jQuery('#focuser').animate({width: width, height: height}, 200);
});
console.log(jQuery('#focuser').width(), jQuery('#focuser').height(), jQuery('#focuser').offset());
});
Die Position abrufen von jQuery (this) ist richtig, aber wenn ich es auf Offset, so scheint es, den Wert hinzuzufügen anstatt sie zu ersetzen. Fehle ich etwas? Ist das der richtige Weg, um es zu verwalten (eine vollständige CSS-Lösung mit Pseudo-Element: Fokus funktioniert nicht, da der Rahmen der Elementgröße hinzugefügt wird und die Seitenanzeige zerstört, der Rahmen muss eine Animation haben)?
#focuser {
border: 2px $second-font-color solid;
display: none;
position: absolute;
}
Vielen Dank für jede Hilfe
* „eine vollständige CSS-Lösung mit Pseudo-Elemente: Fokus nicht wie die Grenze zur Elementgröße hinzugefügt wird und zerstört die Seitenanzeige“ * können Sie wahrscheinlich beheben, die durch die Marge/padding/Boxmodell Anpassung hast du das ausprobiert? –
Um Rahmen innerhalb Element zu setzen, benutzen Sie diese Eigenschaften: box-sizing: border-box; -moz-box-sizing: Bestellbox; -webkit-box-sizing: border-box; – misher
Ich brauche auch eine Animation wie in der js gezeigt. Ich denke nicht, dass es möglich ist, es mit CSS zu bekommen. –