Я делаю html-игру (без холста), где игроки могут щелкнуть ссылки изображения, чтобы сделать способности. Способности затем продолжают кулдаун в течение заданного количества секунд. Чтобы визуально показать это время восстановления, я динамически создаю тег div, который является полупрозрачным и имеет тот же размер, что и изображения способностей с центром в центре, который показывает, сколько секунд осталось во время восстановления. Затем я получаю позицию ссылки изображения с возможностью щелчка и устанавливаю этот div в том же месте за вычетом документа scrollTop() (потому что я читал это где-то, но в настоящее время это не влияет на или без него). Проблема заключается в том, что div не выравнивается вертикально. Верхний левый угол примерно на 1/2 пути вниз по ссылке фактического изображения, и я не уверен, почему. Есть идеи?css абсолютное положение поверх другого элемента
// the ability image link click event
$(".action").click(function (e) {
// get the position of the clicked ability image link
var position = $(this).offset();
// when I dynamically create the div element here is the css I use
.css({ "position":"absolute", "top":(position.top - $(document).scrollTop()), "left":position.left, "width":"66px", "height":"66px", "line-height":"66px", "background-color":"rgba(125, 125, 125, 0.75)", "text-align":"center", "vertical-align":"middle", "font-size":"30px", "color":"red" })
}
Я не показывал весь append() тега div, потому что он просто загромождал вещи. Часть .css() - это то, как определяется div, и я использую верхнее положение ссылки с щелчком изображения как верхнее положение div, но оно заканчивается на 1/2 пути ниже фактической ссылки на изображение.
Вот «релевантные» части html. Ниже находится основной корпус.
<div class="container-fluid">
<!--Actions-->
<div id="divActionRow" class="row" style="margin-top: 0px;">
<div id="divPlayerActions" class="col-md-6 text-center">
<a href="#" class="action" data-cd="5000" data-cast="1000" data-oncooldown="false" id="Cripple"> <img src="/Content/cripple.png"> </a>
<a href="#" class="action" data-cd="8000" data-cast="2000" data-oncooldown="false" id="GroundSlam"> <img src="/Content/ground_slam.png"> </a>
</div>
</div>
</div>
<!--This is where we dynamically hold the cd divs-->
<div id="divCDHolders">
<!--When a cd is active this is what it looks like-->
<div id="Cripple_cd_value" style="position: absolute; top: 448px; left: 181.5px; width: 66px; height: 66px; line-height: 66px; text-align: center; vertical-align: middle; font-size: 30px; color: red; background-color: rgba(125, 125, 125, 0.74902);">2</div>
</div>
вы можете показать, что HTML выглядит? –
Это довольно большой, но я опубликую соответствующие разделы. – user441521
Предоставьте демоверсию, которая реплицирует проблему. Также определите ожидаемый результат. – charlietfl