话不多说,请看代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<style type="text/css">
.page{text-align:left;}
.dragDiv{border:1px solid #ddd; padding:10px; width:300px; margin:0 auto; border-radius:4px; box-shadow:0 1px 2px #fefefe; position: fixed;}
</style>
<div class="dragDiv" id="drag">
<div class="drag-head">自己动手试试</div>
<div class="drag-body">
点击鼠标拖拖看
</div>
</div>
</body>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
var _drag = {};
_drag.top = 0; //拖动过的位置距离上边
_drag.left = 0; //拖动过的位置距离左边
_drag.maxLeft; //距离左边最大的距离
_drag.maxTop; //距离上边最大的距离
_drag.dragging = false; //是否拖动标志
//拖动函数
function bindDrag(el){
var winWidth = $(window).width(), winHeight =$(window).height(),objWidth = $(el).outerWidth(), objHeight = $(el).outerHeight();
_drag.maxLeft = winWidth - objWidth, _drag.maxTop = winHeight - objHeight;
var els = el.style,x=0,y=0;
var objTop = $(el).offset().top, objLeft = $(el).offset().left;
$(el).mousedown(function(e){
_drag.dragging = true;
_drag.isDragged = true;
x = e.clientX - el.offsetLeft;
y = e.clientY - el.offsetTop;
el.setCapture && el.setCapture();
$(document).bind('mousemove',mouseMove).bind('mouseup',mouseUp);
return false;
});
function mouseMove(e){
e = e || window.event;
if(_drag.dragging){
_drag.top = e.clientY - y;
_drag.left = e.clientX - x;
_drag.top = _drag.top > _drag.maxTop ? _drag.maxTop : _drag.top;
_drag.left = _drag.left > _drag.maxLeft ? _drag.maxLeft : _drag.left;
_drag.top = _drag.top < 0 ? 0 : _drag.top;
_drag.left = _drag.left <0 ? 0 : _drag.left;
els.top = _drag.top + 'px';
els.left = _drag.left+ 'px';
return false;
}
}
function mouseUp(e){
_drag.dragging = false;
el.releaseCapture && el.releaseCapture();
e.cancelBubble = true;
$(document).unbind('mousemove',mouseMove).unbind('mouseup',mouseUp);
}
$(window).resize(function(){
var winWidth = $(window).width(),
winHeight = $(window).height(),
el = $(el),
elWidth = el.outerWidth(),
elHeight = el.outerHeight(),
elLeft = parseFloat(el.css('left')),
elTop = parseFloat(el.css('top'));
_drag.maxLeft = winWidth - elWidth;
_drag.maxTop = winHeight - elHeight;
_drag.top = _drag.maxTop < elTop ? _drag.maxTop : elTop;
_drag.left = _drag.maxLeft < elLeft ? _drag.maxLeft : elLeft;
el.css({
top:_drag.top,
left:_drag.left
})
})
}
bindDrag(document.getElementById('drag'));
</script>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# jquery实现拖动
# jquery
# 拖动效果
# 自己封装的一个原生JS拖动方法(推荐)
# 基于JS组件实现拖动滑块验证功能(代码分享)
# Android通过自定义ImageView控件实现图片的缩放和拖动的实现代码
# Android 仿淘宝、京东商品详情页向上拖动查看图文详情控件DEMO详解
# Android RecyclerView滑动删除和拖动排序
# 原生js实现可拖动的登录框效果
# 基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
# js实现div在页面拖动效果
# javascript html5 canvas实现可拖动省份的中国地图
# 拖动时防止选中
# 拖动
# 多说
# 自己动手
# 点击鼠标
# margin
# auto
# shadow
# box
# radius
# padding
# ddd
# solid
# px
# width
# src
# script
# 拖拖看
# bdimg
# apps
# http
相关文章:
简历在线制作网站免费,免费下载个人简历的网站是哪些?
如何高效配置香港服务器实现快速建站?
如何获取开源自助建站系统免费下载链接?
招商网站制作流程,网站招商广告语?
全景视频制作网站有哪些,全景图怎么做成网页?
C#如何使用XPathNavigator高效查询XML
大学网站设计制作软件有哪些,如何将网站制作成自己app?
建站主机服务器选型指南与性能优化方案解析
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
如何在阿里云高效完成企业建站全流程?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
建站主机如何选?高性价比方案全解析
如何高效利用亚马逊云主机搭建企业网站?
北京网站制作网页,网站升级改版需要多久?
成都网站制作报价公司,成都工业用气开户费用?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
婚礼视频制作网站,学习*后期制作的网站有哪些?
清除minerd进程的简单方法
如何用免费手机建站系统零基础打造专业网站?
如何在建站之星网店版论坛获取技术支持?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
官网网站制作腾讯审核要多久,联想路由器newifi官网
如何续费美橙建站之星域名及服务?
盐城做公司网站,江苏电子版退休证办理流程?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
如何快速查询域名建站关键信息?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
公司网站设计制作厂家,怎么创建自己的一个网站?
,石家庄四十八中学官网?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
广州商城建站系统开发成本与周期如何控制?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
如何安全更换建站之星模板并保留数据?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
山东网站制作公司有哪些,山东大源集团官网?
建站之星如何实现五合一智能建站与营销推广?
如何在服务器上三步完成建站并提升流量?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
如何快速搭建高效服务器建站系统?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
*服务器网站为何频现安全漏洞?
网站制作新手教程,新手建设一个网站需要注意些什么?
高防服务器租用首荐平台,企业级优惠套餐快速部署
定制建站是什么?如何实现个性化需求?
*请认真填写需求信息,我们会在24小时内与您取得联系。