固定网页背景图同时保持图片比例的思路代码


Posted in Javascript onAugust 15, 2013

提供一个背景图片策略:

1,背景图片固定

2,随窗口大小改变而改变大小

3,保持比例不变而缩放

支持浏览器:IE 6,7,8,9+ ,FF,Chrome

演示地址:http://www.einino.net/bg_image.html

<style> 
body{margin:0; padding:0;height:2000px; } 
#background_img{ 
top:expression(documentElement.scrollTop); /*we need this expression to fixed the top*/ 
} 
</style>

/** 
*@desc make a fixed background image. resize the image to fit the window size besides do not lost the image's proportion 
*@author EI Nino 
*2013/8/15 
*/ 
var imgBackground=function(_img_obj) 
{ 
this.img = _img_obj; 
this.init(); 
} 
imgBackground.prototype={ 
init:function(){ 
this.img.style.top="0"; 
this.img.style.left="0"; 
if(navigator.appVersion.indexOf('MSIE 6.0')>0){ 
this.img.style.position="absolute"; 
this.img.style.bottom="auto"; 
if(!document.body.style.backgroundImage){//esacpe the flash when scroll the window in IE 6 
document.body.style.backgroundImage="url(about:blank)"; 
document.body.style.backgroundAttachment="fixed"; 
} 
} 
else{ 
this.img.style.position="fixed"; 
} 
this.ra = this.img.width/this.img.height; 
this.resize(); 
this.BindEvent(); 
}, 
resize:function() { 
var self=this; 
if((document.documentElement.clientWidth /document.documentElement.clientHeight )>=self.ra) 
{ 
self.img.style.width=document.documentElement.clientWidth+"px"; 
self.img.style.height=""; 
} 
else{ 
self.img.style.width=""; 
self.img.style.height=document.documentElement.clientHeight +"px"; 
} 
}, 
GetStyle:function(_obj,_style){ 
var obj = _obj; 
return obj.currentStyle? obj.currentStyle[_style] :window.getComputedStyle(obj, null)[_style]; 
}, 
BindEvent:function(){ 
var self = this; 
$(window).resize(function(){//use jquery lib 
self.resize(); 
}); 
} 
}; 
new imgBackground(document.getElementById("background_img"));
Javascript 相关文章推荐
静态的动态续篇之来点XML
Dec 23 Javascript
img的onload的另类用法
Jan 10 Javascript
jQuery 动画弹出窗体支持多种展现方式
Apr 29 Javascript
高性能web开发 如何加载JS,JS应该放在什么位置?
May 14 Javascript
精通Javascript系列之数值计算
Jun 07 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
Aug 19 Javascript
JS简单实现动画弹出层效果
May 05 Javascript
Js获取图片原始宽高的实现代码
May 17 Javascript
js验证框架之RealyEasy验证详解
Jun 08 Javascript
JS中跳出循环的示例代码
Sep 14 Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 Javascript
Vuex中实现数据状态查询与更改
Nov 08 Javascript
jQuery UI 实现email输入提示实例
Aug 15 #Javascript
javascript中如何处理引号编码&amp;#034;
Aug 15 #Javascript
Jquery中val()表单取值赋值的实例代码
Aug 15 #Javascript
jquery ajax方式直接提交整个表单核心代码
Aug 15 #Javascript
js冒泡法和数组转换成字符串示例代码
Aug 14 #Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
Aug 14 #Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
Aug 14 #Javascript
You might like
php中防止SQL注入的最佳解决方法
2013/04/25 PHP
PHP中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
javascript学习笔记(十三) js闭包介绍(转)
2012/06/20 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
2016/08/02 Javascript
javascript基础知识讲解
2017/01/11 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
对vue里函数的调用顺序介绍
2018/03/17 Javascript
jquery+css实现Tab栏切换的代码实例
2019/05/14 jQuery
vue的keep-alive用法技巧
2019/08/15 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
vue实现轮播图帧率播放
2021/01/26 Vue.js
[33:19]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第一场 11.26
2020/11/30 DOTA
利用Python读取文件的四种不同方法比对
2017/05/18 Python
详解Python中where()函数的用法
2018/03/27 Python
python使用 __init__初始化操作简单示例
2019/09/26 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
Python中的With语句的使用及原理
2020/07/29 Python
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
护士自荐信
2013/10/25 职场文书
上班迟到检讨书
2014/01/10 职场文书
《小草和大树》教学反思
2014/02/16 职场文书
请假条怎么写
2014/04/10 职场文书
授权委托书样本
2014/09/25 职场文书
vue使用watch监听属性变化
2022/04/30 Vue.js