利用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 相关文章推荐
Jquery实现无刷新DropDownList联动实现代码
Mar 08 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
Mar 21 Javascript
jquery.validate的使用说明介绍
Nov 12 Javascript
javascript:json数据的页面绑定示例代码
Jan 26 Javascript
在JavaScript中处理数组之reverse()方法的使用
Jun 09 Javascript
js实现的光标位置工具函数示例
Oct 03 Javascript
bootstrap modal弹出框的垂直居中
Dec 14 Javascript
Angular2库初探
Mar 01 Javascript
jQuery第一次运行页面默认触发点击事件的实例
Jan 10 jQuery
详解原生JS动态添加和删除类
Mar 26 Javascript
layer.prompt输入层的例子
Sep 24 Javascript
JS基础之逻辑结构与循环操作示例
Jan 19 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
PHP 存储文本换行实现方法
2010/01/05 PHP
php弹出对话框实现重定向代码
2014/01/23 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
PHP面向对象详解(三)
2015/12/07 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
jquery用data方法获取某个元素上的事件
2014/06/23 Javascript
Javascript核心读书有感之词法结构
2015/02/01 Javascript
JavaScript的RequireJS库入门指南
2015/07/01 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
react-router JS 控制路由跳转实例
2017/06/15 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
python实现给字典添加条目的方法
2014/09/25 Python
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
如何利用python发送邮件
2020/09/26 Python
python 图像增强算法实现详解
2021/01/24 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
新西兰最大的连锁超市:Countdown
2020/06/04 全球购物
舞蹈兴趣小组活动总结
2014/07/07 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
怎样写离婚协议书
2014/09/10 职场文书
纪念九一八事变演讲稿:青少年应树立远大理想
2014/09/14 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android