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


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 相关文章推荐
JavaScript快速检测浏览器对CSS3特性的支持情况
Sep 26 Javascript
JS图片放大效果简单实现代码
Sep 08 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
Oct 10 Javascript
Javascript中this绑定的3种方法与比较
Oct 13 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
Dec 18 Javascript
javascript 产生随机数的几种方法总结
Sep 26 Javascript
实现div内部滚动条滚动到底部和顶部的代码
Nov 15 Javascript
js实现关闭网页出现是否离开提示
Dec 07 Javascript
微信小程序实现自上而下字幕滚动
Jul 14 Javascript
vue-router之nuxt动态路由设置的两种方法小结
Sep 26 Javascript
vue的keep-alive中使用EventBus的方法
Apr 23 Javascript
swiper4实现移动端导航栏tab滑动切换
Oct 16 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实现paypal整合方法
2010/11/28 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
JQuery Highcharts 动态生成图表的方法
2013/11/15 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
2014/11/24 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
bootstrap是什么_动力节点Java学院整理
2017/07/14 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
python采用getopt解析命令行输入参数实例
2014/09/30 Python
分享Python文本生成二维码实例
2016/01/06 Python
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
python+selenium开发环境搭建图文教程
2017/08/11 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
详解python运行三种方式
2019/05/13 Python
python numpy中cumsum的用法详解
2019/10/17 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
python使用gdal对shp读取,新建和更新的实例
2020/03/10 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
详解python logging日志传输
2020/07/01 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
会计实习生自我鉴定
2013/12/12 职场文书
中学生校园广播稿
2014/01/16 职场文书
2014年青年志愿者工作总结
2014/12/09 职场文书
业务员辞职信范文
2015/03/02 职场文书
离职信范本
2015/06/23 职场文书
售房协议书范本
2015/08/11 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
Java移除无效括号的方法实现
2021/08/07 Java/Android