我已经创建了我正在尝试解决的问题的简化版本。请看一看如何根据浏览器/屏幕的宽度更改“背景位置”
HTML:
<div class="container">
<div class="bg-left">
<div class="content">
Some content here
</div>
</div>
</div>
CSS:
.container {
display: block;
height: 200px;
width: 100%;
background-color: #e2e2e2;
}
.bg-left {
background-image: url('http://i.imgur.com/hDheuGJ.png');
background-repeat:no-repeat;
background-position: 0px 0px;
width: 100%;
height: 100%;
}
.content {
width: 960px;
margin: 0 auto;
font-size: 20px;
}
的jsfiddle:http://jsfiddle.net/gnPC6/
该代码包含:
1)包含位于左上角的背景图像的100%宽度的DIV(即,黑色三角形)
2)在该div还有另一个格其是,例如宽960px并居中。一些内容将被放置在这里。
问题:如果浏览器窗口的宽度被调整大小,那么黑色三角形仍然会在左上角可见,并且结果是该图像模糊了前景内容。
我想要实现这样的:
1)如果用户的浏览器调整为1050px或之下,则黑三角的背景位置将调整使得浏览器更被调整大小后,黑色三角形的可见性就越差(即背景图像会动态地从屏幕向左滑动)...
如果用户窗口为1051px或更高,背景位置应保持为0px 0px;
如果用户窗口是1050px,背景位置应该是0像素-1px;
如果用户窗口是1049px,背景位置应该是0像素-2px;
如果用户窗口是1048px,背景位置应该是0像素-3px; 等
这在本质上是什么,我想实现的,但我想不通的地方使用JavaScript开始解决这个问题。
请让我知道如果您有任何建议,非常感谢!
编辑我知道媒体查询,但我不相信他们可以有效地解决这个问题。我不想只根据浏览器的宽度更改CSS,我希望在调整浏览器大小时动态更改背景位置。为此,我敢肯定,一个javscript的解决方案是必需的,而不是数百@media声明
你想做的事可以做到用什么CSS媒体查询。去阅读。 –
如上所述,媒体查询将很容易解决这个问题。一些链接可以为您提供以下帮助:https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries,http://webdesignerwall.com/tutorials/css3-media-queries – user2212564
谢谢但我已经阅读过媒体查询。据我所知,我可以指定像'@media(max-width:1050px){.bg-left {background-position:0px -1px}}'这样的东西,但我该如何做到这一点,以便背景位置是动态的随宽度逐个像素下降而改变? – ghilton