宽度一定且使背景图片不变形的情况下,背景图片不随内容滚动(固定)
2017-08-23 17:08
351 查看
情景描述
在做一个移动端的项目时,内容如果超出手机高度,出现滚动条向下滑动时要求背景图片不能跟随内容滑动,且背景图片不会变形。这里会想到用background-attachment:fixed;来解决这个问题。下面先上一段代码。代码
html代码
<div class="wrapper"> <div class="wrapper-container"> <p>我是内容啊</p> <p>我是内容啊</p> <p>我是内容啊</p> <p>我是内容啊</p> <p>我是内容啊</p> </div> </div>
css代码
.wrapper{ background-image:url('../images/bg-01.png'); background-attachment:fixed; background-position:100% 100%; background-repeat:no-repeat; } .wrapper .wrapper-container{ width:100%; }
js代码
var wh=$(window).height(); var ww=$(window).width(); var ch=$('.wrapper .wrapper-container').height(); if(ch<=ww){ $('.wrapper').height(wh).width('ww'); } else{ $('.wrapper').height(ch).width('ww'); }
理解
对这段代码解释说明一下,也许不是最简便的,但是目前我只能想到这样做了。变量wh、ww、ch分别指手机的高度、宽度和内容的高度。HTML先给内容的外层加个包裹的div,给这个包裹的div设置背景图片,让其固定,此时注意,在设置background-attachment:fixed;的时,要同时设置它的background-position:100% 100%;这样背景图片刚好填满整个div且固定位置了。不同手机的手机屏幕的宽度和高度都可以获得,此时外层包裹的div的宽度为设备宽度即可,内容层宽度width设为100%。主要是高度要随内容的高度不同而不同。如果内容层的高度小于手机屏幕的宽度,那个就让包裹层的div的高度为手机屏幕的宽度。否则让包裹层的div的高度为内容层的高度。
在此使用了jquery框架,其实我在使用中,把我的内容都写在了
<div class='container'></div>中,就是在
<div class="wrapper-container"></div>下又嵌套一个
<div class='container'></div>,我觉得这样会更好一些。
图片
相关文章推荐
- 一列固定宽度布局和背景图片绝对定位的实现代码
- 网页背景图片固定,不随网页滚动
- C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件
- 如何让DIV在内容不固定的情况下宽度刚好显示完内容
- css 使用 calc 实现背景满屏,内容宽度固定
- C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件
- 网页背景图片固定切自适应浏览器高度宽度
- C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件
- 背景图片有边框线条. 内容自动适应. 自动随窗口宽度的改变而改变.
- Android对于界面底部N个按钮平分屏幕宽度且保持按钮背景图片不变形的解决方案
- 固定背景图片不滚动
- 背景图片不随内容滚动
- 设置背景图片不随浏览器放大而改变(背景固定,只上层div滚动)
- 固定表头,单元格td宽度自适应,多内容出现-横向纵向滚动条数据表格的<前世今生>
- android 实现在文本内容超过固定宽度可手动左右滚动查看效果
- 使用背景图片,图片高度随宽度自动变化,并居中缩放,不变形
- C#发现之旅: WinForm.NET中开发具有固定背景图片的可滚动控件
- CSS设置背景图片,背景图片不动内容滚动
- moo弹出框 改进版 css外置 背景用图片 大小任意缩放 圆角 插入任意内容 自定义按钮 回车空格esc支持 滚动支持 动画开关
- css基础 background-attachment 背景图是固定的,不随内容的滚动而滚动