国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jquery實現拖動效果

2019-11-20 09:16:26
字體:
來源:轉載
供稿:網友

因為想實現相框的拖到,找了半天的原因愣是沒有找到錯誤,所以,只能翻看源碼了 

如何實現拖動效果?

 

首先分析下拖動效果原理:
1.當鼠標在被拖動對象上按下鼠標(觸發onmousedown事件,且鼠標在對象上方)
2.開始移動鼠標(觸發onmousemove事件)
3.移動時更顯對象的top和left值
4.鼠標放開停止拖動(觸發onmouseup事件)
注意:拖動的對象必須是定位對象(即設置了position:absolute或 relative)。 

也就是說拖動事件=onmousedown事件+onmousemove事件 

整個過程就是處理這三個事件來模擬drag事件
現在看看我實現的源代碼: 

html代碼: 

<div class="drag"> <p class="title">標題(點擊標題拖動)</p></div><div class="drag1"> <p class="title">標題</p> 點擊我移動</div>
 

jquery插件代碼:

(function($){ $.fn.drag=function(options){ //默認配置 var defaults = { handler:false, opacity:0.5 }; // 覆蓋默認配置 var opts = $.extend(defaults, options); this.each(function(){ //初始標記變量 var isMove=false, //handler如果沒有設置任何值,則默認為移動對象本身,否則為所設置的handler值 handler=opts.handler?$(this).find(opts.handler):$(this), _this=$(this), //移動的對象 dx,dy; $(document) //移動鼠標,改變對象位置 .mousemove(function(event){ // console.log(isMove); if(isMove){ //獲得鼠標移動后位置 var eX=event.pageX,eY=event.pageY; //更新對象坐標 _this.css({'left':eX-dx,'top':eY-dy});  } }) //當放開鼠標,停止拖動 .mouseup(function(){ isMove=false; _this.fadeTo('fast', 1); //console.log(isMove);  }); handler //當按下鼠標,設置標記變量isMouseDown為true .mousedown(function(event){ //判斷最后觸發事件的對象是否是handler if($(event.target).is(handler)){ isMove=true; $(this).css('cursor','move'); //console.log(isMove); _this.fadeTo('fast', opts.opacity); //鼠標相對于移動對象的坐標 dx=event.pageX-parseInt(_this.css("left")); dy=event.pageY-parseInt(_this.css("top"));  }   });  }); }; })(jQuery);
 

調用方法:

$(function(){ //拖動標題 $(".drag").drag({handler:$('.title'),//操作拖動的對象,此對象必須是移動對象的子元素opacity:0.7 //設置拖動時透明度}); //拖動主體對象 $(".drag1").drag({ opacity:0.7 }); });

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上虞市| 光山县| 滨海县| 华池县| 恩平市| 万全县| 盘山县| 山东| 衡南县| 韩城市| 南部县| 横峰县| 阳城县| 惠州市| 海门市| 黄骅市| 监利县| 桦南县| 陈巴尔虎旗| 沂源县| 涿州市| 攀枝花市| 鸡东县| 台中市| 定南县| 浮梁县| 五华县| 剑河县| 富宁县| 来宾市| 翁源县| 新密市| 武平县| 闽清县| 吴江市| 天峨县| 井冈山市| 儋州市| 旌德县| 建湖县| 密云县|