Jquery实现自定义窗口随意的拖拽


Posted in Javascript onMarch 12, 2014

在网页上我们经常看到,当点击一个按钮时,弹出一个自定义窗口,并且可以随意的拖拽,从而改变其位置

使用jquery实现拖拽,则必须要jquery的文件了,实现步骤:

1、引入jquery文件

2、编写js脚本

具体代码:

html代码:

<button id="show">显示</button> 
<div class="win"> 
<div class="wTop"><p style="float:right;margin:5px 5px 0px 0px;color:white" id="hidden">X</p></div> 
<div class="content"></div> 
</div>

css样式:
<style type="text/css"> 
.win{width:500px;height:600px;background:#000000;border-radius:8px;box-shadow:0px 0px 5px 10px;opacity:0.8;position:absolute;left:0;top:0;display:none} 
.win .wTop{height:30px;width:100%;cursor:move} 
.win .content{height:570px;width:100%;border-radius:5px;background:white} 
</style>

js脚本:
<script language="javascript" type="text/javascript"> 
$(function(){ 
//拖拽 
dragAndDrop(); 
//初始化位置 
initPosition(); 
//点击按钮 
clickShowBtn(); 
}); 
//拖拽 
function dragAndDrop(){ 
var _move=false;//移动标记 
var _x,_y;//鼠标离控件左上角的相对位置 
$(".wTop").mousedown(function(e){ 
_move=true; 
_x=e.pageX-parseInt($(".win").css("left")); 
_y=e.pageY-parseInt($(".win").css("top")); 
//$(".wTop").fadeTo(20,0.5);//点击开始拖动并透明显示 
}); 
$(document).mousemove(function(e){ 
if(_move){ 
var x=e.pageX-_x;//移动时鼠标位置计算控件左上角的绝对位置 
var y=e.pageY-_y; 
$(".win").css({top:y,left:x});//控件新位置 
} 
}).mouseup(function(){ 
_move=false; 
//$(".wTop").fadeTo("fast",1);//松开鼠标后停止移动并恢复成不透明 
}); 
} 
//初始化拖拽div的位置 
function initPosition(){ 
//计算初始化位置 
var itop=($(document).height()-$(".win").height())/2; 
var ileft=($(document).width()-$(".win").width())/1.8; 
//设置被拖拽div的位置 
$(".win").css({top:itop,left:ileft}); 
} 
//点击显示按钮 
function clickShowBtn(){ 
$("#show").click(function(){ 
$(".win").show(1000); 
}); $("#hidden").click(function(){ 
$(".win").hide(1000); 
}); 
} 
</script>

引入的js文件
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
Javascript 相关文章推荐
JavaScript Sort 表格排序
Oct 31 Javascript
javascript 中that的含义示例介绍
May 14 Javascript
jquery中checkbox全选失效的解决方法
Dec 26 Javascript
Angular.js回顾ng-app和ng-model使用技巧
Apr 26 Javascript
微信小程序之购物车功能
Sep 23 Javascript
深入理解Angular4订阅(Subscribe)与取消
Nov 22 Javascript
基于react后端渲染模板引擎noox发布使用
Jan 11 Javascript
vue框架制作购物车小球动画效果实例代码
Sep 26 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
Feb 11 Javascript
Vue 数据响应式相关总结
Jan 28 Vue.js
React服务端渲染原理解析与实践
Mar 04 Javascript
JavaScript事件的委托(代理)的用法示例详解
Feb 18 Javascript
Jquery实现自定义弹窗示例
Mar 12 #Javascript
把jQuery的类、插件封装成seajs的模块的方法
Mar 12 #Javascript
使用js检测浏览器是否支持html5中的video标签的方法
Mar 12 #Javascript
利用Keydown事件阻止用户输入实现代码
Mar 11 #Javascript
JavaScript中奇葩的假值示例应用
Mar 11 #Javascript
Javascript加载速度慢的解决方案
Mar 11 #Javascript
js解析json读取List中的实体对象示例
Mar 11 #Javascript
You might like
php 小乘法表实现代码
2009/07/16 PHP
PHP 时间日期操作实战
2011/08/26 PHP
PHP的mysqli_set_charset()函数讲解
2019/01/23 PHP
PHP使用反向Ajax技术实现在线客服系统详解
2019/07/01 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
JavaScript 语言基础知识点总结(思维导图)
2013/11/10 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
2016/12/27 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
原生js二级联动效果
2017/06/20 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
vue项目中导入swiper插件的方法
2018/01/30 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
axios发送post请求,提交图片类型表单数据方法
2018/03/16 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[59:15]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.20
2020/11/20 DOTA
解决python删除文件的权限错误问题
2018/04/24 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
python 从csv读数据到mysql的实例
2018/06/21 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
python根据文本生成词云图代码实例
2019/11/15 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
虚拟机下载python是否需要联网
2020/07/27 Python
自动化专业本科毕业生求职信
2013/10/20 职场文书
承诺书模板
2014/08/30 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
MySQL限制查询和数据排序介绍
2022/03/25 MySQL