jQuery插件實現(xiàn)靜態(tài)HTML驗證碼校驗
608
2024-03-22
因為想實現(xiàn)相框的拖到,找了半天的原因愣是沒有找到錯誤,所以,只能翻看源碼了
如何實現(xiàn)拖動效果?
首先分析下拖動效果原理:
1.當鼠標在被拖動對象上按下鼠標(觸發(fā)onmousedown事件,且鼠標在對象上方)
2.開始移動鼠標(觸發(fā)onmousemove事件)
3.移動時更顯對象的top和left值
4.鼠標放開停止拖動(觸發(fā)onmouseup事件)
注意:拖動的對象必須是定位對象(即設(shè)置了position:absolute或 relative)。
也就是說拖動事件=onmousedown事件+onmousemove事件
整個過程就是處理這三個事件來模擬drag事件
現(xiàn)在看看我實現(xiàn)的源代碼:
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如果沒有設(shè)置任何值,則默認為移動對象本身,否則為所設(shè)置的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 //當按下鼠標,設(shè)置標記變量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); //鼠標相對于移動對象的坐標 dx=event.pageX-parseInt(_this.css("left")); dy=event.pageY-parseInt(_this.css("top")); } }); }); }; })(jQuery);
調(diào)用方法:
$(function(){ //拖動標題 $(".drag").drag({ handler:$('.title'),//操作拖動的對象,此對象必須是移動對象的子元素 opacity:0.7 //設(shè)置拖動時透明度 }); //拖動主體對象 $(".drag1").drag({ opacity:0.7 }); });
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持綠夏網(wǎng)。
#免責聲明#
本站[綠夏技術(shù)導航]提供的一切軟件、教程和內(nèi)容信息僅限用于學習和研究目的;不得將上述內(nèi)容用于商業(yè)或者非法用途,否則,一切后果請用戶自負。本站信息來自網(wǎng)絡(luò)收集整理,版權(quán)爭議與本站無關(guān)。您必須在下載后的24個小時之內(nèi),從您的電腦或手機中徹底刪除上述內(nèi)容。如果您喜歡該程序或內(nèi)容,請支持正版,購買注冊,得到更好的正版服務。我們非常重視版權(quán)問題,如有侵權(quán)請郵件[admin@lxwl520.com]與我們聯(lián)系進行刪除處理。敬請諒解!