javascript - 我在 mousemove 上将图像附加到光标上。它一直有效,直到我滚动,分离图像,在页面上向上移动
问题描述
解决方案:
$(document).mousemove(function (e) {
var img = $(singleCardSearchElementIds.HoverImageClassName);
var windowScrollY = window.scrollY;
img.css({ 'top': windowScrollY + e.clientY, 'left': e.clientX + 20 });
});
这是我的主要内容的样子:
<main class="w-100 main-container">
<div id="contentContainer" class="mw8 center content-container">
<div id="cardContainer" class="flex flex-wrap">
</div>
<div id="tableContainer" class="mv2 dn">
<img class="hover-card hover-card-loading dn" alt="" src="" />
<table id="cardTable">
<thead>
<tr>
<th>CardId</th>
<th>Set</th>
<th>No.</th>
<th>Name</th>
<th>Cost</th>
<th>Type</th>
<th>Rarity</th>
<th>Artist</th>
<th>ImageUrl</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</main>
默认情况下,图像与dn
类一起隐藏。在 JS 中,我删除它并在悬停一行时设置图像的来源。我正在使用页面mousemove
事件将图像附加到光标:
$(document).mousemove(function (e) {
var img = $(singleCardSearchElementIds.HoverImageClassName);
img.css({ 'top': e.clientY - 110, 'left': e.clientX + 20 });
});
当只有几行时,它几乎可以正常工作:
但是,如果有一堆行并且我需要滚动,则图像会向上移动,我将光标向下移动:
有什么想法吗?
解决方案
继续评论,如果将视口的滚动 Y 添加到图像顶部 css 属性的顶部会发生什么。由于滚动 Y 从 0 开始,您会获得所需的行为,但一旦增加,您就不会。
$(document).mousemove(function (e) {
var img = $(singleCardSearchElementIds.HoverImageClassName);
var topY = $(window).scrollTop();
img.css({ 'top': topY + (e.clientY - 110), 'left': e.clientX + 20 });
});
推荐阅读
- cordova - 在 Cordova gradle -v 中显示 gradle 版本,但在 cordova 要求上未安装 gradle
- javascript - 可视化数据的正确方法是什么?
- regex - 如何使用 regix 从表达式中删除特殊字符,如“$”
- android - 尝试了一切,但相对布局点击根本不起作用
- cocoapods - 从私有 PodSpecs 存储库中删除版本?
- vue.js - 如何安装 vuetify 1.5.18
- time-series - 时空 2D-CNN-LSTM
- vmware - 事件日期超过 30 天的已关闭虚拟机列表
- git - git rebase 后 Git 推送失败
- swagger - 使用 .NET Core 3.0 进行 JWT 身份验证和 Swagger