作为 UI 的一部分,我尝试使用 html、css 和 jquery 设计一个“指南针”小部件。 我想要实现的是:给定 0 到 360 之间的值,定位图像以使其代表相应的指南针位置。例如,值 0 应如下所示:
值 90 应如下所示:
等等......
为了实现这一目标,我尝试在 div 标签中使用一个大图像作为背景图像,并调整它的位置:
这是我尝试过的CSS,在我的jquery代码中,我希望操纵位置百分比以控制图像的位置
#compass{
background-image: url(../../resources/images/compass2.png);
background-size: cover;
background-repeat:repeat-x;
background-position: 25%;
}
对于我的一生,我无法弄清楚如何按照我想要的方式明确控制位置。例如,从图像左边缘到第一个E字母的距离约为图像宽度的19%。我将如何将该距离与背景位置值相关联?
最佳答案
Working Fiddle
看起来零度的起点约为 59.5%,每个度的值(value)约为 0.20555%。因此,对于每个学位,您可以在起点上添加 0.20555%。
Javascript
function adjustImage() {
var deg = $('#deg').val();
var addDeg = 0.20555 * deg;
var start = 59.5;
var newDeg = addDeg + start;
$('#compass').css({'background-position': newDeg + '%'});
}
adjustImage();
HTML
<div id="compass"></div>
<input id="deg" placeholder="enter degrees" type="number" onchange="adjustImage()">
CSS
#compass{
background-image: url('/image/OLVFE.jpg');
background-size: cover;
background-repeat:repeat-x;
background-position: 59.5%;
height: 91px;
width: 600px;
border: 1px solid black;
}
#deg {
margin: 20px;
padding: 5px;
}
关于javascript - css控制div内背景图片的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33930484/