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 相关文章推荐
Js表格万条数据瞬间加载实现代码
Feb 20 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
May 11 Javascript
JavaScript动态添加事件之事件委托
Jul 12 Javascript
js替换字符串中所有指定的字符(实现代码)
Aug 17 Javascript
angular ng-repeat数组中的数组实例
Feb 18 Javascript
canvas实现图片根据滑块放大缩小效果
Feb 24 Javascript
JS实现加载时锁定HTML页面元素的方法
Jun 24 Javascript
Node.js 基础教程之全局对象
Aug 06 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
Oct 23 Javascript
深入理解ES6中let和闭包
Feb 22 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
Jun 19 Javascript
JS删除数组指定值常用方法详解
Jun 04 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
PHP和XSS跨站攻击的防范
2007/04/17 PHP
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
php实现删除指定目录下相关文件的方法
2014/10/20 PHP
php封装的图片(缩略图)处理类完整实例
2016/10/19 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
2019/05/13 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
js原型继承的两种方法对比介绍
2014/03/30 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
关于不同页面之间实现参数传递的几种方式讨论
2017/02/13 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
js实现图片实时时钟
2020/01/15 Javascript
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
小结Python用fork来创建子进程注意事项
2014/07/03 Python
Python中的with...as用法介绍
2015/05/28 Python
Python 基础之字符串string详解及实例
2017/04/01 Python
python修改txt文件中的某一项方法
2018/12/29 Python
解决python gdal投影坐标系转换的问题
2020/01/17 Python
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
CK加拿大官网:Calvin Klein加拿大
2020/03/14 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
AURALog面试题软件测试方面
2013/10/22 面试题
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
大学社团招新的通讯稿
2014/09/10 职场文书
如何写通讯稿
2015/07/22 职场文书
MySQL注入基础练习
2021/05/30 MySQL
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL