javascript - css控制div内背景图片的位置

标签 javascript jquery html css

作为 UI 的一部分,我尝试使用 html、css 和 jquery 设计一个“指南针”小部件。 我想要实现的是:给定 0 到 360 之间的值,定位图像以使其代表相应的指南针位置。例如,值 0 应如下所示: enter image description here

值 90 应如下所示:

enter image description here

等等......

为了实现这一目标,我尝试在 div 标签中使用一个大图像作为背景图像,并调整它的位置: enter image description here

这是我尝试过的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/

相关文章:

javascript - 在 div 元素中调用 JQuery 函数

Jquery 条件检查是 (':hover' )不起作用

javascript - html &lt;input&gt; 无法将值传递给 URL,除非使用 codeigniter 的 input_form

jquery - 查找元素是否隐藏

html -::after 伪元素出现在之前

javascript - 如何复制 div onclick 事件?

javascript - 将具有不同模型的模板渲染到 Ember.js 中的命名 socket 中

javascript - 重新加载 iframe 时捕获 javascript 事件

html - <h :commandLink> and <h:commandButton> for same style 之间的 CSS 问题

javascript - 是否可以将图像从外部源转换为 base64 字符串客户端?