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 变量命名规则详解
May 07 Javascript
JavaScript常用全局属性与方法记录积累
Jul 03 Javascript
js浮点数精确计算(加、减、乘、除)
Dec 26 Javascript
js截取中英文字符串、标点符号无乱码示例解读
Apr 17 Javascript
javascript实现带下拉子菜单的导航菜单效果
May 14 Javascript
bootstrap侧边栏圆点导航
Jan 11 Javascript
js禁止表单重复提交
Aug 29 Javascript
Vue2 监听属性改变watch的实例代码
Aug 27 Javascript
浅谈webpack4.x 入门(一篇足矣)
Sep 05 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
Sep 27 Javascript
angular4中引入echarts的方法示例
Jan 29 Javascript
JS实现导航栏楼层特效
Jan 01 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
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
php继承的一个应用
2011/09/06 PHP
php流量统计功能的实现代码
2012/09/29 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
如何实现JS函数的重载
2006/09/22 Javascript
DHTML 中的绝对定位
2006/11/26 Javascript
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
js 定位到某个锚点的方法
2016/11/19 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
React中this丢失的四种解决方法
2019/03/12 Javascript
vue data引入本地图片的两种方式小结
2019/11/13 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
2020/02/24 Javascript
浅谈编码,解码,乱码的问题
2016/12/30 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
Ajax请求总共有多少种Callback
2016/07/17 面试题
支教自我鉴定
2014/01/18 职场文书
聚美优品广告词改编
2014/03/14 职场文书
2014年安全生产大检查方案
2014/05/13 职场文书
电子商务专业自荐信
2014/06/02 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
企业法人授权委托书
2014/09/25 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
原生Javascript+HTML5一步步实现拖拽排序
2021/06/12 Javascript
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android