最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jquery實(shí)現(xiàn)拖動(dòng)效果

 更新時(shí)間:2016年08月10日 08:42:23   作者:沐禹辰  
這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)拖動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

因?yàn)橄雽?shí)現(xiàn)相框的拖到,找了半天的原因愣是沒有找到錯(cuò)誤,所以,只能翻看源碼了 

如何實(shí)現(xiàn)拖動(dòng)效果?

 

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

也就是說拖動(dòng)事件=onmousedown事件+onmousemove事件 

整個(gè)過程就是處理這三個(gè)事件來模擬drag事件
現(xiàn)在看看我實(shí)現(xiàn)的源代碼: 

html代碼: 

<div class="drag">
 <p class="title">標(biāo)題(點(diǎn)擊標(biāo)題拖動(dòng))</p>
</div>

<div class="drag1">
 <p class="title">標(biāo)題</p>
 點(diǎn)擊我移動(dòng)
</div>

 

jquery插件代碼:

(function($){
 $.fn.drag=function(options){

 //默認(rèn)配置
 var defaults = {
 handler:false,
 opacity:0.5
 };

 // 覆蓋默認(rèn)配置
 var opts = $.extend(defaults, options);

 this.each(function(){

 //初始標(biāo)記變量
 var isMove=false,
 //handler如果沒有設(shè)置任何值,則默認(rèn)為移動(dòng)對(duì)象本身,否則為所設(shè)置的handler值
 handler=opts.handler?$(this).find(opts.handler):$(this),
 _this=$(this), //移動(dòng)的對(duì)象
 dx,dy;

 $(document)
 //移動(dòng)鼠標(biāo),改變對(duì)象位置
 .mousemove(function(event){
 // console.log(isMove);
 if(isMove){

 //獲得鼠標(biāo)移動(dòng)后位置
 var eX=event.pageX,eY=event.pageY;

 //更新對(duì)象坐標(biāo)
 _this.css({'left':eX-dx,'top':eY-dy});

  }
 })

 //當(dāng)放開鼠標(biāo),停止拖動(dòng)
 .mouseup(function(){
 isMove=false;
 _this.fadeTo('fast', 1);
 //console.log(isMove);
  });

 handler
 //當(dāng)按下鼠標(biāo),設(shè)置標(biāo)記變量isMouseDown為true
 .mousedown(function(event){

 //判斷最后觸發(fā)事件的對(duì)象是否是handler
 if($(event.target).is(handler)){

 isMove=true;
 $(this).css('cursor','move');

 //console.log(isMove);
 _this.fadeTo('fast', opts.opacity);

 //鼠標(biāo)相對(duì)于移動(dòng)對(duì)象的坐標(biāo)
 dx=event.pageX-parseInt(_this.css("left"));
 dy=event.pageY-parseInt(_this.css("top"));

  }
   });
  });
 };
 })(jQuery);

 

調(diào)用方法:

$(function(){

 //拖動(dòng)標(biāo)題
 $(".drag").drag({
handler:$('.title'),//操作拖動(dòng)的對(duì)象,此對(duì)象必須是移動(dòng)對(duì)象的子元素
opacity:0.7 //設(shè)置拖動(dòng)時(shí)透明度
});

 //拖動(dòng)主體對(duì)象
 $(".drag1").drag({
 opacity:0.7
 });

 });

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

上思县| 运城市| 黄龙县| 永和县| 江永县| 武夷山市| 教育| 罗平县| 九寨沟县| 许昌县| 澜沧| 克拉玛依市| 龙里县| 宜兴市| 色达县| 洞口县| 昭平县| 定日县| 嘉峪关市| 瑞丽市| 富蕴县| 将乐县| 连平县| 黄平县| 乌恰县| 松阳县| 太谷县| 永川市| 错那县| 洪洞县| 双牌县| 广平县| 应用必备| 和林格尔县| 沁水县| 龙陵县| 灵石县| 乌拉特中旗| 北辰区| 南木林县| 林口县|