利用jQuery和CSS将背景图片拉伸


Posted in Javascript onOctober 16, 2015

现在WEB页面设计比较流行使用大背景图,那么您知道如何使用一张大背景图进行拉伸效果呢?也就是说使用一张固定尺寸的背景图片,让它在页面中随着浏览器尺寸进行拉伸,就像我们的电脑桌面壁纸效果。本文将带您一起使用jQuery和CSS实现背景图片拉伸效果。

利用jQuery和CSS将背景图片拉伸

将背景图片拉伸,而不是平铺,注意平铺效果我们可以使用CSS的background-repeat来实行背景图片的平铺效果,本文讨论的是背景图片的拉伸效果。这种效果在一些前卫的页面设计中已经广泛应用,尤其在一些独立页面,像登录页面使用拉伸的背景图片效果比较常见。
目前有两种解决方案可以实现背景图片拉伸效果,一种是CSS,我们可以使用background-size:cover实现图片的拉伸效果,但是IE8及以下版本不支持background-size,于是我们尝试使用微软的滤镜效果,但是IE6不支持,毕竟还有一些后进生在使用IE6。另一种解决方案是使用jQuery,完全解决浏览器的兼容性问题,还是jQuery威武。
CSS解决方案
我们准备一张背景图片,任意尺寸的,假设我们要做一个登录页面,页面中使用拉升的背景图。我们只需要在body中加入以下代码:

<div id="main"> 
...登录表单 
</div>

然后CSS这样写:

body{background:url(bg.jpg) center center;background-size:cover;height:900px;width:100%; 
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bg.jpg', sizingMethod='scale');} 
#main{position:absolute; top:50%; left:50%; width:420px; height:250px; 
margin:-125px 0 0 -210px; background:#ffc}

我们使用background-size实现了背景图片的拉伸效果,但是要兼容IE7,IE8就需要使用滤镜filter来实现,注意该方案中,必须指定容器的高度,本例中指定了height:900px。
CSS方案有一定的局限性,必须指定容器高度,IE6不兼容,那么比较完美的解决方案就是使用jQuery了。
jQuery解决方案
我们使用jQuery先向body中动态插入一个DIV,并且该DIV中包含一张图片,也就是我们要求拉伸效果的背景图片。然后使用jQuery获取浏览器窗口的大小,根据浏览器窗口大小,动态设置背景图片的尺寸(宽和高)。

$(function(){ 
  $("body").append("<div id='main_bg'/>"); 
  $("#main_bg").append("<img src='bg.jpg' id='bigpic'>"); 
  cover(); 
  $(window).resize(function(){ //浏览器窗口变化 
    cover(); 
  }); 
}); 
function cover(){ 
  var win_width = $(window).width(); 
  var win_height = $(window).height(); 
  $("#bigpic").attr({width:win_width,height:win_height}); 
}

上述代码中,cover()函数就是动态的设置了背景图片的尺寸,通过jQuery的append方法动态加入背景图片,当页面加载完成时已经浏览器窗口变化时都能实现背景图片的拉伸效果,也就是页面ready和resize都调用了cover()函数。

以上两种解决方案,是否都很满意?我比较喜欢jQuery解决方案总之希望能帮到大家更好地掌握jQuery和CSS使背景图片拉伸的技巧。

Javascript 相关文章推荐
javascript nextSibling 与 getNextElement(node) 使用介绍
Oct 13 Javascript
IE6下opacity与JQuery的奇妙结合
Mar 01 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
Jun 19 Javascript
悬浮广告方法日常收集整理
Mar 18 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
Nov 18 Javascript
jQuery的中 is(':visible') 解析及用法(必看)
Feb 12 Javascript
jQuery EasyUI之验证框validatebox实例详解
Apr 10 jQuery
vue拦截器Vue.http.interceptors.push使用详解
Apr 22 Javascript
Vue 组件间的样式冲突污染
Aug 31 Javascript
jQuery实现的点击按钮改变样式功能示例
Jul 21 jQuery
JavaScript面向对象继承原理与实现方法分析
Aug 09 Javascript
区分vue-router的hash和history模式
Oct 03 Javascript
基于jQuery实现的菜单切换效果
Oct 16 #Javascript
javascript判断复选框是否选中的方法
Oct 16 #Javascript
jquery判断复选框是否被选中的方法
Oct 16 #Javascript
基于jquery实现复选框全选,反选,全不选等功能
Oct 16 #Javascript
js生成随机数的方法实例
Oct 16 #Javascript
jQuery实现商品活动倒计时
Oct 16 #Javascript
js如何打印object对象
Oct 16 #Javascript
You might like
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
JQuery中each()的使用方法说明
2010/08/19 Javascript
使用jQuery动态加载js脚本文件的方法
2014/04/03 Javascript
js获取url中&quot;?&quot;后面的字串方法
2014/05/15 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
2016/01/12 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
jQuery/JS监听input输入框值变化实例
2019/10/17 jQuery
解决vue页面渲染但dom没渲染的操作
2020/07/27 Javascript
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
python打开文件并获取文件相关属性的方法
2015/04/23 Python
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
python实现的文件同步服务器实例
2015/06/02 Python
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
python编程开发之日期操作实例分析
2015/11/13 Python
Python数据抓取爬虫代理防封IP方法
2018/12/23 Python
更新修改后的Python模块方法
2019/03/03 Python
Python列表对象实现原理详解
2019/07/01 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
华为慧通面试题
2012/09/11 面试题
网上商城创业计划书范文
2014/01/31 职场文书
运动会入场词60字
2014/02/15 职场文书
加入学生会演讲稿
2014/04/24 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
英语演讲开场白
2015/05/29 职场文书
vue动态绑定style样式
2022/04/20 Vue.js
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技