欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【使用jQuery和CSS将背景图片拉伸】,下面是详细的分享!
使用jQuery和CSS将背景图片拉伸
现在WEB页面设计比较流行使用大背景图,那么您知道如何使用一张大背景图进行拉伸效果呢?也就是说使用一张固定尺寸的背景图片,让它在页面中随着浏览器尺寸进行拉伸,就像我们的电脑桌面壁纸效果。本文将带您一起使用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=http://www.chinaz.com/program/2012/1127/‘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写法参照:如何让DIV水平和垂直居中
CSS方案有一定的局限性,必须指定容器高度,IE6不兼容,请看DEMO1,那么比较完美的解决方案就是使用jQuery了。
jQuery解决方案我们使用jQuery先向body中动态插入一个DIV,并且该DIV中包含一张图片,也就是我们要求拉伸效果的背景图片。然后使用jQuery获取浏览器窗口的大小,根据浏览器窗口大小,动态设置背景图片的尺寸(宽和高)。
$(function(){
$(“body”).append(“《div id=‘main_bg’/》”);
$(“#main_bg”).append(“《img src=http://www.chinaz.com/program/2012/1127/‘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()函数。
文章来源:helloweba.com
以上所分享的是关于使用jQuery和CSS将背景图片拉伸,下面是编辑为你推荐的有价值的用户互动:
相关问题:CSS中如何设拉伸背景图片铺满屏幕
答:background:url(images/beijing.png) repeat; 加个属background-size:100%;background:url(images/beijing.png) no-repeat; >>详细
相关问题:在css中设置图片的背景图,怎么设置图片纵向拉伸
答:css中设置背景图拉伸填充,在css2.1之前这个背景的长宽值是不能被修改的。 实际的结果是只能重复显示,可以使用repeat,repeat-x,repeat-y,no-repeat这些属性来控制背景图片的显示。所以一般用作背景图片的有2类: 1.是一整张大图,尺寸和区域大... >>详细
相关问题:html中如何将背景图片横向拉伸
答:用修图工具把图片改一下大小再用 或者 body{ background-image:ai.jpg; } >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
