在寫一個在頁面中,經驗證用戶沒有登錄或session失效時候彈出登錄框禁止頁面滾動用到
今天搞了一個功能,上下左右居中,模仿QQ空間里的樣式,把橫向和縱向滾動條禁止掉代碼如下:
<script type="text/javascript">
//禁止滾動條
$(document.body).css({
"overflow-x":"hidden",
"overflow-y":"hidden"
});
//啟用滾動條
$(document.body).css({
"overflow-x":"auto",
"overflow-y":"auto"
});
</script>
我相信大家對這個代碼應該無異議吧,如果有請高手給予指點。測試結果如下:
IE6:禁止滾動條正常,啟動滾動條錯誤,出現雙滾動條且滾動條滾動頁面無反應。
IE7:禁止滾動條正常,啟動滾動條錯誤,出現雙滾動條且滾動條滾動頁面無反應。
IE8: 禁止滾動條正常,啟動滾動條正常。
IE9: 禁止滾動條正常,啟動滾動條正常。
Chrome: 禁止滾動條正常,啟動滾動條正常。
FireFox: 禁止滾動條正常,啟動滾動條正常。
靠,又是IE6和IE7,微軟真的該反省了,所以說做產品得一開始就要負責人。別扯遠了,解決方法是當overflow設置hidden以后,直接取消這個style而不要設置overflow,具體代碼如下:
//為了簡便定義一個樣式類
<style type="text/css">
.html-body-overflow
{
overflow-x:hidden;
overflow-y:hidden;
}
</style>
<script type="text/javascript">
//禁止滾動條(默認是沒有附加這個樣式類的)
$(document.body).toggleClass("html-body-overflow");
//啟動滾動條
$(document.body).toggleClass("html-body-overflow");
</script>
當然也可以直接清掉style的內容,不過上面的做法更直觀、更簡單。