【发布时间】:2022-02-18 17:36:16
【问题描述】:
我有一个我继承的网站,它全是 HTML 代码(没有 CMS)。我正在清理我的旧技能,但对于我的生活,我无法弄清楚如何在导航中移动下拉菜单。
这是网站:https://genquestnutrition.com/
我在导航菜单中移动,现在如果您将鼠标悬停在“公式”上,下拉菜单离左侧太远了。如果可能需要向右移动 25 px。这是该部分的代码:
<div class="xr_ar xr_nb0">
<a href="javascript:;" aria-haspopup="true" onclick="return(xr_nn());">
<img class="xr_rn_ xr_rnsp_ xr_ap" src="index_htm_files/8904.png" alt="Formulas" title="" style="left:390px;top:0px;width:60px;height:25px;"/>
<img class="xr_rn_ xr_rnsp_ xr_ap xr_ro xr_ro0 xr_tt3" src="index_htm_files/8922.png" alt="Formulas" title="" onmousemove="xr_mo(this,220)" style="left:390px;top:0px;width:60px;height:25px;"/>
</a>
<div class="xr_nb2 xr_nb5 xr_smp310_-370" style="left:310px; top:25px; min-width:60px;">
<ul class="xr_nb4">
<li><a href="ree.htm">REE</a>
</li> <li><a href="tee.htm">TEE</a>
</li>
<li>
<a href="https://www.easycalculation.com/health/mifflin-st-jeor-calculator.php" target="_blank">RMR Calc</a>
</li>
</ul>
</div>
</div>
尝试过改变
<div class="xr_nb2 xr_nb5 xr_smp310_-370" style="left:310px; top:25px; min-width:60px;">
到
<div class="xr_nb2 xr_nb5 xr_smp310_-370" style="left:335px; top:25px; min-width:60px;">
认为左侧绝对定位可以做到但上传到服务器时它不会改变。
我不确定我是否在某个地方遗漏了一些覆盖它的 JS 代码,甚至在哪里可以搜索它。
任何帮助将不胜感激。
更新:
我在roe.js 中找到了这段代码,它似乎使用xr_nb5 和xr_smp 来指代关注领域:
function xr_rpmnu() {
var ll = document.getElementsByTagName('DIV');
for (var i = 0; i < ll.length; i++) {
if (ll[i].className.indexOf("xr_nb5") != -1) {
if (ll[i].className.indexOf("xr_smp") != -1) {
var x = ll[i].className.substr(ll[i].className.indexOf("xr_smp") + 6).split("_");
var wre = (window.innerWidth || document.documentElement.clientWidth) - 16;
var wbe = (window.innerHeight || document.documentElement.clientHeight) - 16;
var r = ll[i].getBoundingClientRect();
if (!r.right) {
setTimeout("xr_rpmnu();", 500);
return;
};
if (ll[i].className.indexOf("xr_nb51") != -1) {
ll[i].style.right = "";
ll[i].style.left = x[0] + "px";
r = ll[i].getBoundingClientRect();
if (r.right > wre) {
ll[i].style.left = "";
ll[i].style.right = x[1] + "px";
};
} else if (ll[i].className.indexOf("xr_nb53") != -1) {
ll[i].style.left = "";
ll[i].style.right = x[0] + "px";
r = ll[i].getBoundingClientRect();
if (r.left < 0) {
ll[i].style.right = "";
ll[i].style.left = x[1] + "px";
};
} else {
if (r.right < wre) {
ll[i].style.right = "";
ll[i].style.left = x[0] + "px";
};
r = ll[i].getBoundingClientRect();
if (r.right > wre) {
ll[i].style.left = "";
ll[i].style.right = x[1] + "px";
};
};
};
};
var l = ll[i].getElementsByTagName('LI');
for (var j = 0; j < l.length; j++) {
if (l[j].className.indexOf("xr_nb1") != -1) {
xr_nbr(l[j].firstElementChild, 0);
};
};
};
};
var xr_fitwidthlock = 0;
var xr_prevscale = 1;
var xr_prevscale1 = 1;
var xr_prevscale2 = 1;
var xr_ftwcnt = 0;
我不确定这是否是正确的部分,但如果有人可以提供帮助,那就太好了。同时,我只是把子菜单加宽了。
【问题讨论】:
-
看起来像是某种 CMS,或者肯定是生成的模板。 Javascript 很可能会处理这些下拉菜单的定位。
-
如果您使用开发人员控制台将定位 left:310 更改为 left:350,然后切换另一个元素,然后返回 - 左侧将回到 310。我认为 roe.js 改变了定位(xr_nb2 类)。检查开发者文档/常见问题。
-
我只是在上面添加了一些roe.js代码。
-
我相信您使用的模板来自Xara,也许您可以在这里调查更多或搜索特定社区,或在这里标记它。
标签: javascript html css