利用onresize使得div可以隨著屏幕大小而自適應(yīng)的代碼
更新時(shí)間:2010年01月15日 16:19:08 作者:
javascript 利用onresize使得div可以隨著屏幕大小而自適應(yīng)的代碼
當(dāng)我們讓div居中時(shí)候,一般有兩種方法,一種是固定左右寬度,也就是使用像素絕對(duì)定位;另一種是用百分比來相對(duì)定位,在這種兩種方式下,絕對(duì)定位是不能讓div隨著屏幕而自適應(yīng)的,而用百分比就可以,但是,是用百分比就會(huì)有一個(gè)新的問題,如果我們的頁(yè)面中有這么一句
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
的時(shí)候,top的百分比將會(huì)失效,而刪除這句話的時(shí)候,一切正常,都是不知道這句標(biāo)準(zhǔn)的聲明為什么會(huì)帶來如此的不便
針對(duì)這個(gè)問題,我使用的下面的方法來實(shí)現(xiàn)div的自適應(yīng)
首先 我用的是絕對(duì)定位的方式,先設(shè)置好div的左右上下邊距。在body中添加兩個(gè)事件,
<body bgcolor="#666666" onresize="test()" onload="getwah()">
getwah()用來獲取屏幕的大小和div的各個(gè)邊距,并計(jì)算出它們的差
var height,width,width_cha1,width_cha2;
function getwah()
{
if(document.documentElement && document.documentElement.clientWidth)
{d_width = document.documentElement.clientWidth;}
else if(document.body)
{d_width = document.body.clientWidth;}
width=parseInt(d_width);
width_cha1=width-parseInt(document.getElementById("backi").style.left)
width_cha2=width-parseInt(document.getElementById("massage_box").style.left)
}
當(dāng)屏幕大小變化的時(shí)候(onresize)觸發(fā)test()函數(shù),該函數(shù)就是用戶根據(jù)之前獲得屏幕與邊距的差值重新設(shè)置div的邊距,這樣就可以實(shí)現(xiàn)黨屏幕的大小改變后,div的邊距也會(huì)相應(yīng)地改變,從而實(shí)現(xiàn)div可以隨著屏幕大小的改變而自適應(yīng)
function test()
{
if(document.documentElement && document.documentElement.clientWidth)
{d_width = document.documentElement.clientWidth;}
else if(document.body)
{d_width = document.body.clientWidth;}
var now_left1=parseInt(d_width )-width_cha1;
var now_left2=parseInt(d_width )-width_cha2;
document.getElementById("backi").style.left=now_left1
document.getElementById("massage_box").style.left=now_left2
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
的時(shí)候,top的百分比將會(huì)失效,而刪除這句話的時(shí)候,一切正常,都是不知道這句標(biāo)準(zhǔn)的聲明為什么會(huì)帶來如此的不便
針對(duì)這個(gè)問題,我使用的下面的方法來實(shí)現(xiàn)div的自適應(yīng)
首先 我用的是絕對(duì)定位的方式,先設(shè)置好div的左右上下邊距。在body中添加兩個(gè)事件,
<body bgcolor="#666666" onresize="test()" onload="getwah()">
getwah()用來獲取屏幕的大小和div的各個(gè)邊距,并計(jì)算出它們的差
復(fù)制代碼 代碼如下:
var height,width,width_cha1,width_cha2;
function getwah()
{
if(document.documentElement && document.documentElement.clientWidth)
{d_width = document.documentElement.clientWidth;}
else if(document.body)
{d_width = document.body.clientWidth;}
width=parseInt(d_width);
width_cha1=width-parseInt(document.getElementById("backi").style.left)
width_cha2=width-parseInt(document.getElementById("massage_box").style.left)
}
當(dāng)屏幕大小變化的時(shí)候(onresize)觸發(fā)test()函數(shù),該函數(shù)就是用戶根據(jù)之前獲得屏幕與邊距的差值重新設(shè)置div的邊距,這樣就可以實(shí)現(xiàn)黨屏幕的大小改變后,div的邊距也會(huì)相應(yīng)地改變,從而實(shí)現(xiàn)div可以隨著屏幕大小的改變而自適應(yīng)
復(fù)制代碼 代碼如下:
function test()
{
if(document.documentElement && document.documentElement.clientWidth)
{d_width = document.documentElement.clientWidth;}
else if(document.body)
{d_width = document.body.clientWidth;}
var now_left1=parseInt(d_width )-width_cha1;
var now_left2=parseInt(d_width )-width_cha2;
document.getElementById("backi").style.left=now_left1
document.getElementById("massage_box").style.left=now_left2
}
您可能感興趣的文章:
- jquery實(shí)現(xiàn)拖拽調(diào)整Div大小
- 純js實(shí)現(xiàn)div內(nèi)圖片自適應(yīng)大小(已測(cè)試,兼容火狐)
- jquery動(dòng)態(tài)調(diào)整div大小使其寬度始終為瀏覽器寬度
- js通過八個(gè)點(diǎn) 拖動(dòng)改變div大小的實(shí)現(xiàn)方法
- JQuery加載圖片自適應(yīng)固定大小的DIV
- 通過JavaScript使Div居中并隨網(wǎng)頁(yè)大小改變而改變
- javascript實(shí)現(xiàn)div的拖動(dòng)并調(diào)整大小類似qq空間個(gè)性編輯模塊
- js實(shí)現(xiàn)的八點(diǎn)拖動(dòng)修改div大小的代碼
- 可拖動(dòng)可改變大小div的實(shí)現(xiàn)代碼
- jQuery拖拽通過八個(gè)點(diǎn)改變div大小
相關(guān)文章
BootStrap Validator對(duì)于隱藏域驗(yàn)證和程序賦值即時(shí)驗(yàn)證的問題淺析
這篇文章主要介紹了BootStrap Validator對(duì)于隱藏域驗(yàn)證和程序賦值即時(shí)驗(yàn)證的問題的解決方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12詳解JavaScript如何實(shí)現(xiàn)異步并發(fā)任務(wù)控制器
實(shí)現(xiàn)一個(gè)控制并發(fā)數(shù)的任務(wù)隊(duì)列?、實(shí)現(xiàn)一個(gè)異步并發(fā)任務(wù)控制器,這已經(jīng)是非常經(jīng)典的手寫題目了,因?yàn)槠渲猩婕?異步?和?并發(fā)?的內(nèi)容,所以本文就來講講到底如何實(shí)現(xiàn)呢2023-05-05Code:loadScript( )加載js的功能函數(shù)
Code:loadScript( )加載js的功能函數(shù)...2007-02-02doctype后如何獲得body.clientHeight的方法
doctype后如何獲得body.clientHeight的方法...2007-07-07JS中new?Date().Format("yyyy-MM-dd")?報(bào)錯(cuò)的解決
這篇文章主要介紹了JS中new?Date().Format("yyyy-MM-dd")?報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01