js 背景图随浏览器大小而变化,且保持图片不变形

<html>
<head>
<style>
body{
    overflow:hidden;
}
#pic{
  margin:0 auto;width:100%;height:100%;padding:0;max-width:100%;position:relative;
}
#img{
  position:absolute;left:0px;top:0px;
}
</style>
</head>
<body>
  <div id="pic">
      <img src="" id="img" />
  </div>

  <script type="text/javascript">
   window.onresize=function(){
        resize();
    };
    function resize(){
      //获取浏览器的宽高,包括适配ie浏览器
        if (window.innerWidth)
        var winWidth = window.innerWidth;
        else if ((document.body) && (document.body.clientWidth))
        var winWidth = document.body.clientWidth;
        if (window.innerHeight)
        var winHeight = window.innerHeight;
        else if ((document.body) && (document.body.clientHeight))
        var winHeight = document.body.clientHeight;

     var bg_rate = parseFloat(1920/990);//图片的宽高比
        var br_rate = parseFloat(winWidth/winHeight);//浏览器的宽高比
      //根据宽高比的比较,固定图片的宽高来实现图片铺满屏幕而不变形,多余的部分隐藏
        if(br_rate<bg_rate){
            document.getElementById(‘img‘).style.height = winHeight + ‘px‘
            document.getElementById(‘img‘).style.width = ‘‘;
        }else{
            document.getElementById(‘img‘).style.width = winWidth + ‘px‘;
            document.getElementById(‘img‘).style.height = ‘‘;
        }
    }
</script>
</body>
</html>
时间: 2024-11-05 19:39:42

js 背景图随浏览器大小而变化,且保持图片不变形的相关文章

清除css、javascript及背景图在浏览器中的缓存

在实际项目开发过过程中,页面是上传到服务器上的.而为了减少服务器的压力,让用户少加载,浏览器会将图片.css.js缓存到本地中,以便下次访问网站时使用.这样做不仅减少了服务器的压力,并且也减少了用户的下载次数,获得更好的用户体验. 然而在版本升级或做一些css.js等调整的时候,缓存导致用户无法显示更新后的样式,这是另人头头疼的问题.除非用户自行手动升级缓存,不过几乎所有用户不会为了正常访问这个网站而去手动清除缓存,因为用户根本不知道是不是缓存的问题,而归根结底,用户就是认为你的页面存在问题,不

CSS实现背景图尺寸不随浏览器大小而变化的两种方法

一些网站的首页背景图尺寸不随浏览器缩放而变化,本例使用CSS 实现背景图尺寸不随浏览器缩放而变化,方法一. 把图片作为background,方法二使用img标签.喜欢的朋友可以看看 一些网站的首页背景图尺寸不随浏览器缩放而变化,例如百度个人版的首页,缩放后背景图的尺寸并不改变:  再比如花瓣网( huaban.com ): 现在用CSS来实现这一效果. 首 先需要一张足够大尺寸的图片,上图百度背景图的尺寸为1600*1000px( 图片地址:http://4.su.bdimg.com/skin/

Bootstrap3基础 栅格系统 页面布局随 浏览器大小的变化而变化

? 内容 参数 ??OS ??Windows 10 x64 ??browser ??Firefox 65.0.2 ??framework?? ??Bootstrap 3.3.7 ??editor ??Visual Studio Code 1.32.1?? ??typesetting ??Markdown ? code <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="U

关于背景图background-image

文章摘自:http://blog.csdn.net/cicada_slough/article/details/43305175 /*背景图边距问题-在CSS中,背景图片的定位方位有3种:*/1)关键字:background-position: top right;2)像素:background-position: 0px 0px;3)百分比:background-position: 0% 0%; /*背景图与元素大小设置-background-size:cover  (背景图无论多大显示在元素

Lodop打印控件不打印css背景图怎么办

background:url()这是css背景图,http协议会按异步方式下载背景图,所以很容易等不到下载完毕就开始打印了,故lodop不打印css背景图.Lodop不打印css背景图,但是有其他方法输出背景图,在超文本中也可以用普通图片利用层级关系作为背景图输出,img图片设置样式z-index为负值(例如style='z-index: -1;).其他背景图及输出方法,可参考本博客其他博文. Lodop打印html超文本可以输出css背景色,但是不能输出背景图,见图一: 通过设置img图片设置

CSS 实现背景图尺寸不随浏览器缩放而变化

<!-- Author:博客园小dee --> 一些网站的首页背景图尺寸不随浏览器缩放而变化,例如百度个人版的首页,缩放后背景图的尺寸并不改变: 再比如花瓣网( huaban.com ): 现在用CSS来实现这一效果. 首先需要一张足够大尺寸的图片,上图百度背景图的尺寸为1600*1000px( 图片地址:http://4.su.bdimg.com/skin/12.jpg?2 ):花瓣背景图的尺寸为1600*1600px( 图片地址:http://hbfile.b0.upaiyun.com/i

CSS实现背景图尺寸不随浏览器缩放而变化的两种方法

方法一. 把图片作为background 有几个CSS的属性要提一下:background-size:cover,这个CSS3的属性作用是把背景图像扩展至足够大,以使背景图像完全覆盖背景区域,背景图像的某些部分也许无法显示在背景定位区域中,如果不使用这个属性,在IE11和FireFox中缩放浏览器,背景图片会随之缩小,同时使用-webkit-background-size: cover和-o-background-size: cover兼容webkit内核浏览器和Opera浏览器:backgro

三种方法让网站背景自动适应各浏览器大小_ 转载

原地址:http://www.daimajiayuan.com/sitejs-12661-1.html 由于显示器分辨率的不同,相同的背景图片在不同分辨率下有可能会出现只显示一部分或留部分空白的情况. 实现效果:不管你怎么变化浏览器窗口大小,背景图始终会自动调节大小. 1 . 第一种: 第一个想法是需要使用一个 css 背景图,如果这张图够大,就能填充整个屏幕.当浏览器窗口大小没有图片大时,它将自动隐藏多余的部分. <head> .... <script type="text/

css3处理sprite背景图压缩来解决H5网页在手机浏览器下图标模糊的问题

最近在负责一个微信H5 App项目,遇到一个郁闷的问题,手机浏览器查看网页时图标都是模糊的,有锯齿,电脑浏览器显示则是正常.大概知道是分辨率适配等类型的问题,后来网上查找了一些办法,大部分的解决方案都是设计一套放大1倍的图标,再压缩显示. 我们都知道<img>标签可以通过固定宽高的方式来压缩大图,从而得到高清的显示效果,而图标一般用背景图来呈现,怎么搞呢?好吧,css3出了一个很牛逼的属性background-size可以直接设置背景图的宽高,直接解决了前者的疑惑. 那么问题来了,我们的网页不