亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

jquery實現(xiàn)拖動效果

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

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

如何實現(xiàn)拖動效果?

 

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

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

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

html代碼: 

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

<div class="drag1">
 <p class="title">標(biāo)題</p>
 點(diǎn)擊我移動
</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)為移動對象本身,否則為所設(shè)置的handler值
 handler=opts.handler?$(this).find(opts.handler):$(this),
 _this=$(this), //移動的對象
 dx,dy;

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

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

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

  }
 })

 //當(dāng)放開鼠標(biāo),停止拖動
 .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ā)事件的對象是否是handler
 if($(event.target).is(handler)){

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

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

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

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

 

調(diào)用方法:

$(function(){

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

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

 });

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

相關(guān)文章

  • 使用Jquery實現(xiàn)點(diǎn)擊文字后變成文本框且可修改

    使用Jquery實現(xiàn)點(diǎn)擊文字后變成文本框且可修改

    使用Jquery實現(xiàn)點(diǎn)擊文字變?yōu)槲谋究蛐Ч?,可對文本框文字進(jìn)行修改,具體的實現(xiàn)思路如下,感興趣的朋友可以參考下,希望對大家有所幫助
    2013-09-09
  • jquery隱藏標(biāo)簽和顯示標(biāo)簽的實例

    jquery隱藏標(biāo)簽和顯示標(biāo)簽的實例

    在jquery中我們要實現(xiàn)點(diǎn)擊按鈕隱藏標(biāo)簽和顯示標(biāo)簽,只要綁定指定button或其它,這樣點(diǎn)擊時調(diào)用hide或show函數(shù)即可解決,下面看個實例就明白了
    2013-11-11
  • jQuery中prop()方法用法實例

    jQuery中prop()方法用法實例

    這篇文章主要介紹了jQuery中prop()方法用法,以實例形式較為詳細(xì)的分析了prop()方法的功能、定義及獲取或者設(shè)置匹配元素屬性值的各種常見使用技巧,需要的朋友可以參考下
    2015-01-01
  • jQuery鼠標(biāo)事件匯總

    jQuery鼠標(biāo)事件匯總

    鼠標(biāo)事件是指用戶在移動鼠標(biāo)光標(biāo)或者點(diǎn)擊任意鼠標(biāo)鍵時觸發(fā)的事件,jQuery中封裝了基本上所有的鼠標(biāo)事件包括點(diǎn)擊,雙擊,移動等鼠標(biāo)事件,下面我們就來看下這些事件的語法和用法
    2015-08-08
  • jQuery仿Excel表格編輯功能的實現(xiàn)代碼

    jQuery仿Excel表格編輯功能的實現(xiàn)代碼

    Handsontable 是一個相當(dāng)給力的 jQuery 插件,它實現(xiàn)了 HTML 頁面中的表格編輯功能,并且是仿 Excel 的編輯效果。
    2013-05-05
  • jquery實現(xiàn)九宮格大轉(zhuǎn)盤抽獎

    jquery實現(xiàn)九宮格大轉(zhuǎn)盤抽獎

    jQuery九宮格大轉(zhuǎn)盤抽獎代碼網(wǎng)頁特效,點(diǎn)擊抽獎按鈕開始隨機(jī)抽獎選擇獎品,可設(shè)置起點(diǎn)位置、獎品數(shù)量、轉(zhuǎn)動次數(shù)、中獎位置參數(shù)
    2015-11-11
  • jquery 實現(xiàn)的全選和反選

    jquery 實現(xiàn)的全選和反選

    jquery 全選實現(xiàn)代碼。
    2009-04-04
  • 非常漂亮的相冊集 使用jquery制作相冊集

    非常漂亮的相冊集 使用jquery制作相冊集

    這篇文章主要為大家詳細(xì)介紹了使用jquery制作非常漂亮的相冊集,步驟詳細(xì),細(xì)節(jié)介紹完整,感興趣的小伙伴們可以參考一下
    2016-04-04
  • 以jQuery中$.Deferred對象為例講解promise對象是如何處理異步問題

    以jQuery中$.Deferred對象為例講解promise對象是如何處理異步問題

    Promises是一種令代碼異步行為更加優(yōu)雅的抽象,它很有可能是JavaScript的下一個編程范式,一個Promise即表示任務(wù)結(jié)果,無論該任務(wù)是否完成。本文以jQuery中$.Deferred對象為例講解promise對象是如何處理異步問題,需要的朋友參考下
    2015-11-11
  • jquery選擇器需要注意的問題

    jquery選擇器需要注意的問題

    本文講述的是jquery選擇器結(jié)果是數(shù)組時需要主要的一個問題,并詳細(xì)分析了產(chǎn)生此問題的原因,這里記錄下來,小伙伴們在項目中使用的時候要注意一下。
    2014-11-11

最新評論