Jquery实现自定义窗口随意的拖拽
更新时间:2014年03月12日 15:08:57 作者:
点击一个按钮时,弹出一个自定义窗口,并且可以随意的拖拽,jquery也可以实现这样的功能,下面有个不错的示例,大家可以感受下
在网页上我们经常看到,当点击一个按钮时,弹出一个自定义窗口,并且可以随意的拖拽,从而改变其位置
使用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>
使用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>
相关文章
Jquery插件之Fancybox丰富的弹出层效果附源码下载
Fancybox是一款优秀的jquery插件,它能够展示丰富的弹出层效果,相比facybox,fancybox显得功能更为齐全,它除了可以加载DIV,图片、图片集、Ajax数据,还能加载SWF影片,iframe页面等等2015-12-12ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
在做ajax页面无刷新添加的时候,IE下遭遇Ajax缓存,因为刚开始并不知道IE有这个坏毛病,折腾好久,终于解决问题,晒出来和大家分享,希望可以帮助你们2012-12-12清空元素html("") innerHTML="" 与 empty()的区别和应用(推荐)
这篇文章主要介绍了清空元素html("")、innerHTML="" 与 empty()的区别和应用,详细介绍了三者之间的原理及应用,需要的朋友可以参考下2017-08-08jQuery动画显示和隐藏效果实例演示(附demo源码下载)
这篇文章主要介绍了jQuery动画显示和隐藏效果实现方法,并附带了demo源码供读者下载参考,涉及jQuery操作图片的显示,隐藏及淡入淡出等效果,需要的朋友可以参考下2015-12-12jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
本篇文章主要介绍了jquery Easyui Datagrid实现批量操作(编辑,删除,添加),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-02-02EasyUI的treegrid组件动态加载数据问题的解决办法
最近涉及到treegrid组件的查询,需要根据查询条件动态更新EasyUI的treegrid组件的动态加载查询结果2011-12-12
最新评论