欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)相框的拖到,找了半天的原因愣是沒(méi)有找到錯(cuò)誤,所以,只能翻看源碼了 

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

 

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

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

整個(gè)過(guò)程就是處理這三個(gè)事件來(lái)模擬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如果沒(méi)有設(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)放開(kāi)鼠標(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)文章

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

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

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

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

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

    jQuery中prop()方法用法實(shí)例

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

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

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

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

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

    jquery實(shí)現(xiàn)九宮格大轉(zhuǎn)盤(pán)抽獎(jiǎng)

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

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

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

    非常漂亮的相冊(cè)集 使用jquery制作相冊(cè)集

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

    以jQuery中$.Deferred對(duì)象為例講解promise對(duì)象是如何處理異步問(wèn)題

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

    jquery選擇器需要注意的問(wèn)題

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

最新評(píng)論