jQuery window resize
Habe ich Stück javascript-code, der verarbeiten soll, wenn das browser-Fenster verkleinert.
resize.style.marginRight=(resize.offsetWidth-$(this)[0].offsetWidth)+'px'
Tryed dieses Zeug (funktioniert nicht):
window.onresize = function(event) {
resize.style.marginRight=(resize.offsetWidth-$(this)[0].offsetWidth)+'px'
}
Vollständigen code zur Verfügung - http://jsbin.com/adelu3/2/ (siehe Seite Quelle)
Html (durch das Skript generiert):
<div class="resizable-textarea">
<span>
<textarea class="resizable processed" cols="" rows=""></textarea>
<div class="resize"></div>
</span>
</div>
Dank.
- Was versuchen Sie zu tun ?
- Es gibt Recht margin-right auf zu laden, aber nicht zu ändern, wenn browser-Fensters angepasst wird.
Du musst angemeldet sein, um einen Kommentar abzugeben.
offsetWidth
ist eine Eigenschaft der Elemente. In der callback-codewindow.onresize
,this
ist einWindow
, die nicht über eine offsetWidth.Was ist
this
soll das sein? (Dieonresize
Ereignis ist nicht in der verlinkten code.) Wenn Sie möchten, Lesen Sie die Fensterbreite, verwenden Sie$(window).width()
.Wenn Sie Lesen möchten, die Breite von einigen anderen (Vorgänger?) element, das Sie hatte, als
this
in den umschließenden scope, müssen Sie entweder finden Sie das element, indem Sie den Blick von derresize
element oder zu behalten, einen Verweis auf das andere element ein Verschluss, wie zB.:(nb.
$(this)[0]
tut genau nichts.)$(resize).closest('div').width()
um die Breite desresizable-textarea
element aus der textarea, wenn es das ist, was Sie wollen. Oder speichern eine Referenz darauf inthat
wie oben.this
ist eine spezielle variable, entspricht dem Objekt eine Funktion aufgerufen wurde, auf, so dass Sie nicht bekommen kann die äußere Funktion istthis
aus der geschachtelten Funktion direkt.Selbst gemacht.
Dies ist eine gemischte Lösung, es teilt @bobince code und meinen eigenen.