最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

基于jquery的一个拖拽到指定区域内的效果_jquery

来源:动视网 责编:小采 时间:2020-11-27 21:00:53
文档

基于jquery的一个拖拽到指定区域内的效果_jquery

基于jquery的一个拖拽到指定区域内的效果_jquery:这个可与前两个不同了,这个是拖拽到指定的区域内的特效。其实逻辑方式差不多,只不过不同的是 找到目标元素,用appendTo 的方法插入到目标元素。 具体的代码如下,有兴趣者可以试下。(由于是初学,做的简单,如果有其他的方法请给下指点,我定感激不尽哈。
推荐度:
导读基于jquery的一个拖拽到指定区域内的效果_jquery:这个可与前两个不同了,这个是拖拽到指定的区域内的特效。其实逻辑方式差不多,只不过不同的是 找到目标元素,用appendTo 的方法插入到目标元素。 具体的代码如下,有兴趣者可以试下。(由于是初学,做的简单,如果有其他的方法请给下指点,我定感激不尽哈。


这个可与前两个不同了,这个是拖拽到指定的区域内的特效。其实逻辑方式差不多,只不过不同的是 找到目标元素,用appendTo 的方法插入到目标元素。
具体的代码如下,有兴趣者可以试下。(由于是初学,做的简单,如果有其他的方法请给下指点,我定感激不尽哈。。)
代码如下:




测试的拖拽功能



$(document).ready(function() {
var move = false; // 移动的初始化
var $bg = $(".bg");
var initDiv, tarDiv, tarDivHalf = 0, wHalf = 0; //拖拽对象 目标对象
var initPos = {x: 0, y: 0}, relPos = {x: 0, y: 0}, temPos = {x: 0, y: 0};
var dragPos = {x1: 0, x2: 0, y1: 0, y2: 0};// 拖拽对象的四个坐标
var tarDivPos = {x1: 0, y1: 0, x2: 0, y2: 0}; //目标对象的四个坐标
$(".bor").each(function() {
$(this).mousedown(function(event) {
borSub = $(this).index();
initDiv = $(".bor").eq(borSub); //拖拽对象
// 鼠标 与 目标元素的相对坐标
relPos.x = event.pageX - $(this).offset().left;
relPos.y = event.pageY - $(this).offset().top;
move = true;
});
$(document).mousemove(function(event) {
if (!move) { return false; }
// 下列代码是 if(move)的 程序
initDiv.removeClass("bor").addClass("borp");
// 目标元素随鼠标移动的坐标
dragPos.x1 = event.pageX - relPos.x;
dragPos.y1 = event.pageY - relPos.y;
dragPos.x2 = dragPos.x1 + initDiv. innerWidth();
dragPos.y2 = dragPos.y1 + initDiv. innerHeight();
initDiv.css({ left: dragPos.x1 +'px', top: dragPos.y1 + 'px' });
$bg.each(function() {
tarDiv = $(this);
// 目标对象的坐标
tarDivPos.x1 = tarDiv.offset().left;
tarDivPos.x2 = tarDivPos.x1 + tarDiv.width();
tarDivPos.y1 = tarDiv.offset().top;
tarDivPos.y2 = tarDivPos.y1 + tarDiv.height();
tarDivHalf = tarDiv.height()/2; //临时变量,以便于在if判断中使用
wHalf = tarDiv.width()/2;
if (dragPos.x2 >= tarDivPos.x1 + wHalf && dragPos.x2 <= tarDivPos.x2 + wHalf && dragPos.y2 >= tarDivPos.y1 + tarDivHalf && dragPos.y2 <= tarDivPos.y2 + tarDivHalf ) {
if(tarDiv.children().length >0 ) {return false;}// 解决重叠元素 移动到一个目标元素
tarDiv.removeClass("bg").addClass("bg bgColor");
} else {
tarDiv.removeClass("bgColor");
}
});
}).mouseup (function(event) {
initDiv.appendTo($(".bgColor"));// 利用 apppendTo 方法 使拖动元素对象添加到指定的区域。
initDiv.removeClass("borp").addClass("bor").removeAttr("style"); //恢复拖拽对象初始的样式
move = false;
});
});
});




bor1
bor2
bor3













































文档

基于jquery的一个拖拽到指定区域内的效果_jquery

基于jquery的一个拖拽到指定区域内的效果_jquery:这个可与前两个不同了,这个是拖拽到指定的区域内的特效。其实逻辑方式差不多,只不过不同的是 找到目标元素,用appendTo 的方法插入到目标元素。 具体的代码如下,有兴趣者可以试下。(由于是初学,做的简单,如果有其他的方法请给下指点,我定感激不尽哈。
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top