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 相关文章推荐
extjs 列表框(multiselect)的动态添加列表项的方法
Jul 31 Javascript
jquery监控数据是否变化(修正版)
Apr 12 Javascript
五个jQuery图片画廊插件 推荐
May 12 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
Sep 09 Javascript
js中onload与onunload的使用示例
Aug 25 Javascript
浅谈javascript事件取消和阻止冒泡
May 26 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
Jan 23 Javascript
Javascript之BOM(window对象)详解
May 25 Javascript
AngularJS入门教程之数据绑定用法示例
Nov 01 Javascript
Vue.js教程之计算属性
Nov 11 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
Jan 05 Javascript
layer弹出层自适应高度,垂直水平居中的实现
Sep 16 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
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
php下通过POST还是GET来传值
2008/06/05 PHP
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
深入分析PHP引用(&amp;)
2014/09/04 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
vuex 中插件的编写案例解析
2019/06/10 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
Python+django实现简单的文件上传
2016/08/17 Python
python使用mysql数据库示例代码
2017/05/21 Python
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
Django中redis的使用方法(包括安装、配置、启动)
2018/02/21 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
如何基于Python批量下载音乐
2019/11/11 Python
Python进阶之迭代器与迭代器切片教程
2020/01/29 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
多媒体专业自我鉴定
2014/02/28 职场文书
演讲主持词
2014/03/18 职场文书
运动会运动员赞词
2015/07/22 职场文书
检讨书格式
2019/04/25 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技