使用iframe window的scroll方法控制iframe頁面滾動
更新時間:2014年03月05日 17:30:01 作者:
在頁面中如何控制內(nèi)嵌的iframe滾動呢?方法是使用iframe window的scroll方法,大家可以參考下面的示例
在頁面中如何控制內(nèi)嵌的iframe滾動呢?方法是使用iframe window的scroll方法:
1、獲取iframe的窗口對象
var iwin = document.getElementById('iframe1').contentWindow;
2 、獲取iframe的窗口document對象
var doc = iwin.document;
3、調用iframe window對象的scroll方法
iwin.scroll(0,doc.body.scrollHeight);
scroll兩個參數(shù)為x,y軸的滾動量
doc.body.scrollHeight為iframe頁面的高度(包含未顯示的部分)
一個綜合應用例子如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>hover test</title>
<style type="text/css">
ul{
background-color:#ff00ff;
display:block;
}
.toc li{
position:relative; width:10em;
background-color:#00ff00;
display:block;
}
li a {
/*display:block;*/ /*若以塊的模式顯示,則會占滿整個父元素空間*/
background-color:#0000ff;
} /*必須讓a成為塊級元素*/
li a i{
display:none;
}
li a:hover{
text-align:left;
}/*這里添加的代碼只是為了讓IE6顯示,沒有特殊功能,除text-decoration,color,z-index外都可以寫*/
.toc li a:hover i{
display:block;
width:6em;
position:absolute;
top:0;
left:100%; /* 這里100%指相對于元素li的寬度*/
margin:-1em 0 0 0em;
padding:1em;
background:#cde;
border:1px solid red;
text-align:left;
z-index:10000;
}
</style>
</head>
<body>
<iframe id="iframe1" src="" width="400" height="300"></iframe>
html代碼
<ul class="toc" id="toc">
<li><a href="1.html">Chapter 1<i>In which a dragon is seen</i></a></li>
<li><a href="2.html">Chapter 1<i>In which a knight is summoned</i></a></li>
<li><a href="3.html">Chapter 1<i>In which a proncess is disappointed</i></a></li>
<li><a href="4.html">Chapter 1<i>In which a dragon is seen</i></a></li>
<li><a href="5.html">Chapter 1<i>In which a dragon is seen</i></a></li>
<li><a href="6.html">Chapter 1<i>In which a dragon is seen</i></a></li>
<li><a href="7.html">Chapter 1<i>In which a dragon is seen</i></a></li>
</ul>
<script language="javascript">
function 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};
}
function getPosition(obj){
var left = 0;
var top = 0;
while(obj != document.body){
left = obj.offsetLeft;
top = obj.offsetTop;
obj = obj.offsetParent;
}
return left;
}
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); //無效
}
}
</script>
</body>
</html>
1、獲取iframe的窗口對象
var iwin = document.getElementById('iframe1').contentWindow;
2 、獲取iframe的窗口document對象
var doc = iwin.document;
3、調用iframe window對象的scroll方法
iwin.scroll(0,doc.body.scrollHeight);
scroll兩個參數(shù)為x,y軸的滾動量
doc.body.scrollHeight為iframe頁面的高度(包含未顯示的部分)
一個綜合應用例子如下:
復制代碼 代碼如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>hover test</title>
<style type="text/css">
ul{
background-color:#ff00ff;
display:block;
}
.toc li{
position:relative; width:10em;
background-color:#00ff00;
display:block;
}
li a {
/*display:block;*/ /*若以塊的模式顯示,則會占滿整個父元素空間*/
background-color:#0000ff;
} /*必須讓a成為塊級元素*/
li a i{
display:none;
}
li a:hover{
text-align:left;
}/*這里添加的代碼只是為了讓IE6顯示,沒有特殊功能,除text-decoration,color,z-index外都可以寫*/
.toc li a:hover i{
display:block;
width:6em;
position:absolute;
top:0;
left:100%; /* 這里100%指相對于元素li的寬度*/
margin:-1em 0 0 0em;
padding:1em;
background:#cde;
border:1px solid red;
text-align:left;
z-index:10000;
}
</style>
</head>
<body>
<iframe id="iframe1" src="" width="400" height="300"></iframe>
html代碼
<ul class="toc" id="toc">
<li><a href="1.html">Chapter 1<i>In which a dragon is seen</i></a></li>
<li><a href="2.html">Chapter 1<i>In which a knight is summoned</i></a></li>
<li><a href="3.html">Chapter 1<i>In which a proncess is disappointed</i></a></li>
<li><a href="4.html">Chapter 1<i>In which a dragon is seen</i></a></li>
<li><a href="5.html">Chapter 1<i>In which a dragon is seen</i></a></li>
<li><a href="6.html">Chapter 1<i>In which a dragon is seen</i></a></li>
<li><a href="7.html">Chapter 1<i>In which a dragon is seen</i></a></li>
</ul>
<script language="javascript">
function 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};
}
function getPosition(obj){
var left = 0;
var top = 0;
while(obj != document.body){
left = obj.offsetLeft;
top = obj.offsetTop;
obj = obj.offsetParent;
}
return left;
}
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); //無效
}
}
</script>
</body>
</html>
相關文章
關于JAVASCRIPT urldecode URL解碼的問題
JS要實現(xiàn)單純的編碼解碼輕而易舉,escape、unescape就搞定,但是遇到不是完整的URL轉碼,就沒辦法了2012-01-01javascript實現(xiàn)根據(jù)漢字獲取簡拼
這里給大家分享一個JavaScript實現(xiàn)的根據(jù)漢字可以自動轉換簡拼代碼,有需要的朋友可以參考一下,并非本人原創(chuàng)來自網(wǎng)絡。2016-09-09js中substr,substring,indexOf,lastIndexOf,split,replace的用法詳解
這篇文章主要介紹了js中substr,substring,indexOf,lastIndexOf,split,replace的用法詳解的相關資料,需要的朋友可以參考下2015-11-11layui數(shù)據(jù)表格重載實現(xiàn)往后臺傳參
今天小編就為大家分享一篇layui數(shù)據(jù)表格重載實現(xiàn)往后臺傳參,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11Cropper.js進階之裁剪后保存至本地實現(xiàn)示例
這篇文章主要為大家介紹了Cropper.js進階之裁剪后保存至本地實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05