话不多说,请看代码:
<!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
相关文章:
营销式网站制作方案,销售哪个网站招聘效果最好?
已有域名建站全流程解析:网站搭建步骤与建站工具选择
已有域名和空间如何搭建网站?
如何高效生成建站之星成品网站源码?
英语简历制作免费网站推荐,如何将简历翻译成英文?
如何选择域名并搭建高效网站?
如何通过网站建站时间优化SEO与用户体验?
代购小票制作网站有哪些,购物小票的简要说明?
建站之星如何修改网站生成路径?
文字头像制作网站推荐软件,醒图能自动配文字吗?
如何快速搭建个人网站并优化SEO?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
建站之星如何实现PC+手机+微信网站五合一建站?
如何通过万网虚拟主机快速搭建网站?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
香港服务器选型指南:免备案配置与高效建站方案解析
微信h5制作网站有哪些,免费微信H5页面制作工具?
如何快速搭建高效可靠的建站解决方案?
个人网站制作流程图片大全,个人网站如何注销?
如何选择高性价比服务器搭建个人网站?
如何在西部数码注册域名并快速搭建网站?
如何在Tomcat中配置并部署网站项目?
手机网站制作与建设方案,手机网站如何建设?
如何在Golang中指定模块版本_使用go.mod控制版本号
公司网站设计制作厂家,怎么创建自己的一个网站?
高端云建站费用究竟需要多少预算?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
建站之星安装步骤有哪些常见问题?
建站主机选虚拟主机还是云服务器更好?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
如何通过可视化优化提升建站效果?
如何登录建站主机?访问步骤全解析
教学网站制作软件,学习*后期制作的网站有哪些?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
如何配置支付宝与微信支付功能?
php json中文编码为null的解决办法
建站之星云端配置指南:模板选择与SEO优化一键生成
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
linux top下的 minerd 木马清除方法
存储型VPS适合搭建中小型网站吗?
济南企业网站制作公司,济南社保单位网上缴费步骤?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何选择CMS系统实现快速建站与SEO优化?
如何快速选择适合个人网站的云服务器配置?
如何在Windows服务器上快速搭建网站?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
,怎么用自己头像做动态表情包?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
*请认真填写需求信息,我们会在24小时内与您取得联系。