Wie steuere ich das Scrollen des eingebetteten Iframes auf der Seite? Die Methode besteht darin, die Scroll-Methode des Iframe-Fensters zu verwenden:
1. Holen Sie sich das Fensterobjekt von iframe
var iwin = document.getElementById('iframe1').contentWindow;
2. Holen Sie sich das Fensterdokumentobjekt des Iframes
var doc = iwin.document;
3. Rufen Sie die Scroll-Methode des Iframe-Fensterobjekts auf
iwin.scroll(0,doc.body.scrollHeight);
Die beiden Parameter des Bildlaufs sind der Bildlaufbetrag der X- und Y-Achse
doc.body.scrollHeight ist die Höhe der Iframe-Seite (einschließlich des nicht angezeigten Teils)
Ein umfassendes Anwendungsbeispiel lautet wie folgt:
Kopieren Sie den Codecode wie folgt:
<html>
<Kopf>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Hover-Test</title>
<style type="text/css">
ul{
Hintergrundfarbe:#ff00ff;
Anzeige:Block;
}
.toc li{
Position:relativ; Breite:10em;
Hintergrundfarbe:#00ff00;
Anzeige:Block;
}
li a {
/*display:block;*/ /*Wenn es im Blockmodus angezeigt wird, nimmt es den gesamten Platz des übergeordneten Elements ein*/
Hintergrundfarbe:#0000ff;
} /*Muss ein Element auf Blockebene erstellen*/
li ai{
Anzeige:keine;
}
li a:hover{
text-align:left;
}/*Der hier hinzugefügte Code dient nur zur Anzeige in IE6. Er kann außer Textdekoration, Farbe und Z-Index geschrieben werden.*/
.toc li a:hover i{
Anzeige:Block;
Breite:6em;
Position:absolut;
oben:0;
left:100%; /* Hier bezieht sich 100% auf die Breite relativ zum Element li*/
Rand:-1em 0 0 0em;
Polsterung:1em;
Hintergrund:#cde;
Rand: 1 Pixel durchgehend rot;
text-align:left;
Z-Index:10000;
}
</style>
</head>
<Körper>
<iframe id="iframe1" src=""></iframe>
HTML-Code
<ul id="toc">
<li><a href="1.html">Kapitel 1<i>In dem ein Drache zu sehen ist</i></a></li>
<li><a href="2.html">Kapitel 1<i>In dem ein Ritter gerufen wird</i></a></li>
<li><a href="3.html">Kapitel 1<i>In dem ein Misserfolg enttäuscht wird</i></a></li>
<li><a href="4.html">Kapitel 1<i>In dem ein Drache zu sehen ist</i></a></li>
<li><a href="5.html">Kapitel 1<i>In dem ein Drache zu sehen ist</i></a></li>
<li><a href="6.html">Kapitel 1<i>In dem ein Drache zu sehen ist</i></a></li>
<li><a href="7.html">Kapitel 1<i>In dem ein Drache zu sehen ist</i></a></li>
</ul>
<script language="javascript">
Funktion getElementAbsPos(e) {
var t = e.offsetTop;
var l = e.offsetLeft;
while(e = e.offsetParent) {
t += e.offsetTop;
l += e.offsetLeft;
}
return {left:l,top:t};
}
Funktion getPosition(obj){
var links = 0;
var top = 0;
while(obj != document.body){
left = obj.offsetLeft;
top = obj.offsetTop;
obj = obj.offsetParent;
}
zurück nach links;
}
var lis = document.getElementsByTagName('li');
var iwin = document.getElementById('iframe1').contentWindow;
var doc = iwin.document;
for(var i=0;i<lis.length;i++){
lis[i].onmouseover = function(){
var obji = this.childNodes[0].childNodes[1];
doc.writeln('<br>'+ obji.innerText + ',' + getElementAbsPos(document.getElementById('toc')).left);
doc.writeln('<br>'+ obji.offsetLeft + ',' + getElementAbsPos(obji).left + ',' + obji.offsetWidth+ ',' + obji.style.left);
doc.writeln('<br><b>'+ doc.body.scrollHeight + '</b>')
iwin.scroll(0,doc.body.scrollHeight);
//iwin.scrollTo(10000); //Ungültig
}
}
</script>
</body>
</html>