首頁 >web前端 >html教學 >教你在iframe標籤中製作捲軸樣式,iframe標籤的用法介紹

教你在iframe標籤中製作捲軸樣式,iframe標籤的用法介紹

寻∝梦
寻∝梦原創
2018-08-28 16:57:136042瀏覽

這篇文章主要講述了關於HTML iframe標籤中關於滾動的問題,這篇文章中寫了關於iframe標籤的滾動條的去留和保存下來和解決動態高度的iframe加載後雙滾動條等問題,現在就讓我們看文章吧

首先讓我們看看HTML iframe標籤中關於滾動條的去留與保存:

##iframe嵌入頁面後,我們有時需要調整捲軸,例如,去掉全部的捲軸,去掉右邊的捲軸且保留底下的捲軸,去掉底下的捲軸且保留右邊的捲軸。那我們該怎麼做呢?

一:去掉全部的捲軸

第一個方法:iframe 有一個scrolling屬性,它有 auto , yes , no 這三個值。

scrolling : auto -----在需要的時候滾動條出現

scrolling : yes ------總是顯示捲軸

scrolling : no - ------總是隱藏捲軸

當設定scrolling : no時,全部的捲軸就沒有了。

第二個方法:我發現除了scrolling 可以去掉全部的滾動條外,還有另一個方法,在嵌入的頁面裡設定body{overflow:hidden},這樣也可以將滾動條去掉,而且這也是當我們只想去掉某一個捲軸所使用的屬性。

二:去掉右邊的捲軸且保留底下的捲軸

#如果只想保留底下的捲軸,那麼可以在嵌入的頁面裡設定body{ overflow-x:auto ; overflow-y:hidden;}

三:去掉底下的捲軸且保留右邊的捲軸

在嵌入的頁面裡設置body{overflow-x:hidden;overflow-y:auto;}

我們已經知道了這兩個屬性都可以設定滾動條的顯示和隱藏,那麼當兩個同時設定時,會出現哪一個效果呢?

透過偵測,我發現當scrolling="auto"或" yes"時,如果設定了body,那麼就會使用body裡的設定;當scrolling="no"時,不管body設定了什麼,都會使用scrolling的設置,也就是全部的捲軸都被去掉了。

接下來我們說去掉水平捲軸的辦法:

#可以透過下面的方法來去掉:在iframe 所包含的網頁中添加

<style>
html { overflow-x:hidden; }
</style>

即可以去掉水平滾動條了,也可以用同樣的方法去掉垂直滾動條。

解決動態高度的iframe載入後雙捲軸的問題:

若iframe資料是透過ajax 非同步載入的,裡面的div高度也是動態取得的,這裡有個問題,當div內的內容沒有加載到,上面的var height 只能獲取到沒有撐開的高度,加載完ajax後還是無法得到實際的高度,這裡就需要等所有document 樹加載完再加載取得實際高度的方法

終極版,寫在iframe 頁面

var ht = setInterval(&#39;getHeight&#39;,100);
function getHeight(){
    if(document.readyState == &#39;complete&#39;){
        var height = (document.body.scrollHeight)+&#39;px&#39;;
        $(&#39;parentdiv&#39;,window.parent.document).css(&#39;height&#39;,height);
        window.clearInterval(gh);
    }
}

也許有更簡單的解決方法,但這是我一步步遇到問題和解決的思路和程式碼,值得記錄一下。當然還有scrolling屬性也是可以做的,大家可以研究一下,如果大家有什麼簡單的辦法,我們可以一起討論啊,歡迎在下方留言

【小編推薦】

HTML中的base標籤如何寫相對路徑? (內附使用介紹)

HTML img標籤的src屬性的用法是什麼?具體使用方法解析(內附實例)

以上是教你在iframe標籤中製作捲軸樣式,iframe標籤的用法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn