jquery - 如何根据浏览器/屏幕的宽度更改 'background-position'

标签 jquery css resize background-position

我已经创建了我要解决的问题的简化版本。请看一下

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,其中包含位于左上角的背景图像(即黑色三 Angular 形)

2) 在这个 div 中有另一个 div,例如960 像素宽且居中。这里会放一些内容。

问题:如果调整浏览器窗口的宽度,左上角的黑色三 Angular 形仍然可见,结果是该图像遮盖了前景内容。

我想要实现的是:

1) 如果用户浏览器调整到 1050px 或以下,那么黑色三 Angular 形的 BACKGROUND-POSITION 将调整,使得浏览器调整得越大,黑色三 Angular 形就越不可见(即背景图像动态滑动离开屏幕向左)...

如果用户窗口为1051px或以上,背景位置应保持为0px 0px;

如果用户窗口是1050px,background-position应该是0px -1px;

如果用户窗口是1049px,background-position应该是0px -2px;

如果用户窗口是1048px,background-position应该是0px -3px; 等等

本质上这就是我想要实现的目标,但我不知道从哪里开始使用 Javascript 来解决这个问题。

如果您有任何建议,请告诉我,非常感谢!

编辑 我知道媒体查询,但我不相信它们可以有效地解决这个问题。我不想只根据浏览器的宽度更改 CSS,我希望背景位置随着浏览器大小的调整而动态变化。为此,我确定需要一个 javscript 解决方案,而不是数百个@media 声明

最佳答案

一旦找到发生重叠的断点,就可以使用类似这样的方法来覆盖较窄的浏览器视口(viewport):

http://jsfiddle.net/gnPC6/21/

.container {
    background-color: #e2e2e2;
    display: block;
    width: 100%;
    overflow: hidden;
}
.content {
    width: 300px;
    margin: 0 auto;
    font-size: 20px;
    position: relative;
}

.content:before {
    background-image: url('http://i.imgur.com/hDheuGJ.png');
    background-repeat:no-repeat;
    background-position: 0px 0px;
    width: 150px;
    height: 150px;
    content: '';
    display: block;
    position: absolute;
    left: -125px;
}

关于jquery - 如何根据浏览器/屏幕的宽度更改 'background-position',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19453114/

相关文章:

jquery - 我应该通过 RequireJS 加载所有内容(包括 jQuery)吗?

javascript - 如何让PhoneGap、jQuery Mobile中的UI变得良好?

javascript - 现代浏览器是否支持 onbeforeprint/onafterprint HTML 事件?

jquery - 根据字数 Jquery 设置字体大小

php - 将全景图像调整为固定大小

video - 在OpenCV中设置视频文件的捕获大小

jquery - 保持检测单选按钮中选定的值

javascript - 输入键以提交 Ajax 表单

javascript - 在 SPA 站点中保持 2 个导航菜单同步

css - 创建动态 less mixin 设置属性名称