jquery-11 如何实现标签的鼠标拖动效果

本文介绍如何使用jQuery实现标签的鼠标拖动效果。通过绑定mousedown、mousemove和mouseup事件,实现标签跟随鼠标移动,并探讨return false的作用及事件对象的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jquery-11 如何实现标签的鼠标拖动效果

一、总结

一句话总结:核心原理:1、标签实现绝对定位,位置的话跟着鼠标走。2、点击标签的话,给标签绑定事件,停止按住鼠标的话,解除绑定的事件。

 

1、事件中的return false的作用是什么?

a、防止默认行为的发生
b、防止事件冒泡(一个div里面套一个img,你点click事件,先触发div的click,再穿过div触发img的click事件)

29     function start(event) {
30         deltaX=event.clientX-obj.offset().left;
31         deltaY=event.clientY-obj.offset().top;
32 
33         $(document).bind("mousemove", move);
34         $(document).bind("mouseup", stop);
35 
36         //阻止默认行为的发生
37         //阻止事件冒泡的发生
38         return false;
39     }

 

2、event对象如何产生和使用?

事件发生就有event对象,在事件的那个函数里面就可以使用event对象了,也可以把它作为参数传递给其它函数
传进去event对象的位置就可以return false来防止默认事情发生。

29     function start(event) {
30         deltaX=event.clientX-obj.offset().left;
31         deltaY=event.clientY-obj.offset().top;

 

3、如何实现标签的鼠标拖动效果?

首先给标签绑定鼠标按下事件,获取鼠标位置和标签左上角的差值,鼠标移动的时候给文档对象绑定mousemove事件,鼠标停止按动的时候就解除文档对象所有事件的绑定。

26 function drag(obj){
27     obj.bind("mousedown", start);
28 
29     function start(event) {
30         deltaX=event.clientX-obj.offset().left;
31         deltaY=event.clientY-obj.offset().top;
32 
33         $(document).bind("mousemove", move);
34         $(document).bind("mouseup", stop);
35 
36         //阻止默认行为的发生
37         //阻止事件冒泡的发生
38         return false;
39     }
40 
41     function move(event) {
42         obj.css({
43             "left":(event.clientX-deltaX)+"px",
44             "top":(event.clientY-deltaY)+"px"
45         })
46         return false;
47     }
48 
49     function stop() {
50         $(document).unbind("mousemove", move);
51         $(document).unbind("mouseup", stop);
52     }
53 }
54 
55 obj=$("#div1");
56 drag(obj);

 

4、js如何将标签对象传递给函数?

获取对象,然后作为参数传递给函数

55 obj=$("#div1");
56 drag(obj);
26 function drag(obj){
27     obj.bind("mousedown", start);

 

5、如何实现某个元素绑定某个事件的时候执行某个方法?

bind的第二个参数直接方法名,没加字符串,因为js中方法和变量只差一对括号

33         $(document).bind("mousemove", move);
41     function move(event) {
42         obj.css({
43             "left":(event.clientX-deltaX)+"px",
44             "top":(event.clientY-deltaY)+"px"
45         })
46         return false;
47     }

 

 

二、如何实现标签的鼠标拖动效果

 

 1 <!doctype html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title>index</title>
 6     <style>
 7         #div1{
 8             position: absolute;
 9             top:0px;
10             left:0px;
11             border-radius:256px;
12             width:256px;
13             height:256px;
14             background: #ccc;
15             overflow: hidden;
16         }
17     </style>
18     <script src="jquery.js"></script>
19 </head>
20 <body>
21     <div id="div1">
22          <img src="a.png">
23     </div>
24 </body>
25 <script>
26 function drag(obj){
27     obj.bind("mousedown", start);
28 
29     function start(event) {
30         deltaX=event.clientX-obj.offset().left;
31         deltaY=event.clientY-obj.offset().top;
32 
33         $(document).bind("mousemove", move);
34         $(document).bind("mouseup", stop);
35 
36         //阻止默认行为的发生
37         //阻止事件冒泡的发生
38         return false;
39     }
40 
41     function move(event) {
42         obj.css({
43             "left":(event.clientX-deltaX)+"px",
44             "top":(event.clientY-deltaY)+"px"
45         })
46         return false;
47     }
48 
49     function stop() {
50         $(document).unbind("mousemove", move);
51         $(document).unbind("mouseup", stop);
52     }
53 }
54 
55 obj=$("#div1");
56 drag(obj);
57 </script>
58 </html>

 

 

 

 

转载于:https://www.cnblogs.com/Renyi-Fan/p/9242692.html

### Cursor 的免费资源与使用教程 Cursor 是一款基于人工智能技术开发的代码编辑器工具,旨在帮助开发者更高效地编写和优化代码[^1]。以下是有关其下载、安装以及使用的相关信息: #### 下载地址 Cursor 可在其官方网站上获取:[Cursor - The AI Code Editor](https://www.cursor.so/)。访问该网站后,可以找到适用于不同操作系统的版本进行下载。 #### 注册与登录方式 完成下载之后,用户需通过注册来激活软件功能。目前支持两种主流账户体系用于登录: - **Google 账户** - **GitHub 账户** 需要注意的是,在首次启动程序时会提示用户完成上述任一形式的身份验证过程。 #### 关于免费使用情况 虽然 Cursor 提供了一定程度的基础服务给未付费订阅者体验,但对于高级特性和无限制访问权限,则可能需要购买相应的计划套餐。具体而言,部分核心AI辅助编码能力或许会在试用期结束后受到局限。因此建议查看官网定价页面了解最新详情并确认是否存在满足需求的完全免费选项。 #### 基本使用指南 尽管官方文档可能是最权威的学习资料来源之一,这里提供几个初学者入门技巧作为补充说明: 1. 安装完成后打开应用界面,默认布局设计直观易懂; 2. 利用侧边栏快速切换项目文件夹结构视图; 3. 尝试调用内置命令面板执行常见任务(如搜索替换),通常可通过快捷键 Ctrl+Shift+P (Windows/Linux) 或 Command+Shift+P (MacOS) 打开; 4. 探索插件市场扩展额外的功能模块,比如集成特定语言环境的支持包等; 对于更加深入的操作指导,请参照产品附带的帮助手册或者在线社区讨论区寻求进一步解答。 ```python # 示例 Python 代码片段展示如何配置虚拟环境 import venv from pathlib import Path def create_venv(path: str): target_dir = Path(path).resolve() builder = venv.EnvBuilder(with_pip=True) builder.create(target_dir) create_venv('./my_project_env') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值