jquery - 如何使用 css 变换平滑地移动圆圈?
问题描述
我有2个这样的div。
<div id="myimage" style="background-image: url('myimage.png'); background-size: cover; width: 500px; height: 500px"></div>
<div id="mycircle" style="border:2px solid red; height:100px; width:100px; border-radius:50%; -moz-border-radius:50%; -webkit-border-radius:50%"></div>
我想用鼠标在图像上移动圆圈。这很完美。
<script>
$(document).ready(function() {
$('#myimage').on("mousemove", function(event) {
var offset = $(this).offset();
var x = event.pageX - offset.left;
var y = event.pageY - offset.top;
$('#mycircle').css('transform', 'translate('+x+'px, '+y+'px)');
});
});
问题是圈子滞后。可以以更好的方式完成此操作,以使圆圈平滑移动吗?
解决方案
这是一个改进的小提琴:https ://jsfiddle.net/Lsh9tzjq/
最重要的是:
您可以通过操作顶部/左侧 css 属性来设置圆的位置
$('#mycircle').css({'top':y+'px', 'left':x+'px'});
并使鼠标事件的圆圈“透明”。
pointer-events: none;
这可以防止圆圈意外捕获导致感知滞后的鼠标事件。
推荐阅读
- reactjs - 如何使用 grpc-web 构建 react-redux 应用程序?
- c# - Node 在连接到 Postgres 方面比 .NET Core 快 20 倍
- c# - 如何在 C++ 控制台中运行控制台进程
- mongodb - 从处理程序插入 MongoDB 文档
- reactjs - 使用 Phusion Passenger 部署使用 create-react-app 构建的应用程序
- javascript - 在 WordPress 中使用 ajax 调用 PHP 函数
- javascript - 如何确定颜色感知亮度?
- ionic-framework - Ionic:在模拟器上运行 APK:WebView 不存在?
- java - 返回表达式可以只在java中一种类型的递归方法的一个点上吗?
- javascript - 更改复选框状态