js特效——根据鼠标位置移动的图片

这篇具有很好参考价值的文章主要介绍了js特效——根据鼠标位置移动的图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

js特效——根据鼠标位置移动的图片

基础概念

1、offsetX

offset意为偏移量,是事件对象距左上角为参考原点的距离。以元素盒子模型的内容区域的左上角为参考点。不包括border。

2、clientX

事件对象相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条

3、pageX

事件对象相对于整个文档的坐标以像素为单位.

4、screenX

事件对象相对于设备屏幕的左上角的坐标,当改变屏幕的分辨率的时候,坐标会随之改变.

以上除了screenX/Y以设备像素为单位,其他都是以css像素为单位

1、图片在鼠标的右下角跟随移动

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta>
    <title>Document</title>

    <link rel="stylesheet" href="css/style.css">
    <script src="js/jquery-3.7.0.js"></script>

    <style>
        div {
            position: relative;
            width: 150px;
            height: 150px;
            background-image: url(./images/jingwu-1.png);
            background-size: 100%;
            text-align: center;
        }
    </style>
</head>

<body>
    <div id="pop"></div>

    <script>
        $(function () {
            // 提前创建一个变量,用来控制图片是否可拖拽
            var pop = $("#pop")
            // 保存鼠标相对于元素本身的坐标
            var canMove = false;
            // 在文档显示区拖拽图片
            var offsetX, offsetY;

            // 1.鼠标左键按下时允许拖拽-mousedown
            pop.mousedown(function (e) {
                // 鼠标左键按下时允许拖拽
                canMove = true;

                // 在鼠标按键按下时记录鼠标相对于元素本身的坐标
                offsetX = e.offsetX;
                offsetY = e.offsetY;
            })

            // 2.鼠标在移动过程中,当图片可拖拽时,记录图片移动的距离,并将图片移动到该位置-mousemove
            // left/top = 鼠标位置相对于文档显示区的坐标 - 鼠标位置相对于元素本身的位置
            window.onmousemove = function (e) {
                if (canMove == true) {
                    var left = e.clientX - offsetX;
                    var top = e.clientY - offsetY;
                }

                console.log("left = " + left);
                console.log("top = " + top);

                // 当图片超出页面区域禁止移动
                if (left <= 0) {
                    left = 0; // 左边
                } else if (left > window.innerWidth - 150) {
                    left = window.innerWidth - 150; // 右边
                } else if (top < 0) {
                    top = 0; // 上边
                } else if (top > window.innerHeight - 150) {
                    top = window.innerHeight - 150; // 下边
                }

                pop.css("left", left + "px");
                pop.css("top", top + "px");
            }

            // 3.鼠标左键抬起时不允许拖拽-mouseup
            pop.mouseup(function () {
                canMove = false;
            })
        })
    </script>
</body>

</html>

效果展示:

根据鼠标移动位置的图片

2、背景图片被鼠标拖拽移动

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta>
    <title>Document</title>

    <link rel="stylesheet" href="css/style.css">
    <script src="js/jquery-3.7.0.js"></script>

    <style>
        img {
            width: 80px;
            height: 80px;
            position: absolute;
            top: 0;
            left: 0;
        }
    </style>
</head>

<body>
    <img src="images/bk_icon_FangDaJing.png" alt="">

    <script>
        $(function () {
            let imgEle = $("img")
            $("html").mousemove(function () {
                let x = window.event.clientX;
                var y = window.event.clientY;
                imgEle.css("top", y + "px");
                imgEle.css("left", x + "px");
            })
        })
    </script>
</body>

</html>

效果展示:

可以被鼠标拖拽的图片文章来源地址https://www.toymoban.com/news/detail-769731.html

到了这里,关于js特效——根据鼠标位置移动的图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • three.js实现鼠标点击控制物体移动(带动画效果,位置精确)

    通过查阅各种资料,最终确定解决方案,动画效果使用gsap组件库实现,也可不用,代码稍作修改即可。解决鼠标点击坐标偏移问题,复制可直接运行。 完整代码如下:

    2024年02月07日
    浏览(60)
  • unity 3D,镜头跟随鼠标移动

    一、鼠标隐藏,使用UI图片作鼠标图 二、射线在屏幕中央,用于交互 三、鼠标与摄像头跟随

    2024年02月12日
    浏览(72)
  • Unity用鼠标拖拽UI,UI跟随鼠标移动

    先上效果 继承几个拖拽的接口 IBeginDragHandler, IDragHandler,IEndDragHandler 计算下偏移量,转换下坐标系 限制下可拖拽的范围,我设置的是canvas的大小 欢迎大佬多多来给萌新指正,欢迎大家来共同探讨。 如果各位看官觉得文章有点点帮助,跪求各位给点个“一键三连”,谢啦~ 声明

    2024年02月06日
    浏览(81)
  • vue中跟随鼠标移动和边界处理

    补充前端跟坐标有关的知识点 1.pageX和pageY是整个文档开始计算的坐标,  红色表示pageX和pageY 2.offsetX和offsetY是一个鼠标在一个元素内的坐标, 蓝色表示offsetX和offsetY 3.clientX和clientY是当前屏幕可视化局域计算的坐标,  当文档不向下滚动时,红色也可以表示clientX和clientY 分析得出

    2024年02月16日
    浏览(52)
  • 【Qt】QCustomPlot组件跟随鼠标显示xy轴坐标位置

    目录 一、 问题描述 二、 解决方案 三、代码实现 一、 问题描述 如题所述。 二、 解决方案 自定义一个继承QCustomPlot类的实现类,重写mouseMove虚函数实现,从而获取鼠标位置,然后计算出点的坐标值,再利用QToolTip显示点坐标。 三、代码实现 继承自QCustomPlot组件的MFMCustomPl

    2024年02月11日
    浏览(48)
  • Unity【角色/摄像机移动控制】【2.角色跟随鼠标转向】

    本章代码实现基于本系列的【1.角色移动】 在前面的基础上,我们在PlayerController脚本中添加如下函数,随后在update方法中调用即可: 其中mouseSensitivity是前面自定义的一个float变量,用来调节对鼠标转向速度,至此,当我们转动鼠标,角色也会跟着转动

    2024年02月22日
    浏览(56)
  • vue自定义指令directives+div跟随鼠标移动的floatButton组件

    项目需求 实现一个悬浮按钮,可在每个页面悬浮,为了不遮挡可以再浏览器可视区任意移动,并且不能移动出可是区域 实现方式 通过vue自定义指令,监听鼠标移动事件,计算位移,使元素移动, 效果: 可移动的悬浮按钮 1.实现代码 2.悬浮按钮组件 3.悬浮按钮样式 待优化点

    2024年02月10日
    浏览(47)
  • 教你用JavaScript制作鼠标特效

    欢迎来的我的小院,我是霍大侠,恭喜你今天又要进步一点点了! 我们来用JavaScript编程实战案例,做一个鼠标爱心特效。鼠标在页面移动时会出现彩色爱心特效。通过实战我们将学会createElement方法、appendChild方法、setTimeout方法。 页面出现后,鼠标在页面上移动产生彩色爱心

    2024年02月11日
    浏览(50)
  • untiy 连接两个UI或一段固定一段跟随鼠标移动的线段

    注意,仅适用于UI,且Canvas必须是Camera模式,不能用在3D物体上,3D物体请使用LineRenender 先创建一个图片,将锚点固定在左边 然后在脚本中添加如下内容

    2024年02月13日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包