jQuery實(shí)現(xiàn)的響應(yīng)鼠標(biāo)移動(dòng)方向插件用法示例【附源碼下載】
本文實(shí)例講述了jQuery實(shí)現(xiàn)的響應(yīng)鼠標(biāo)移動(dòng)方向插件用法。分享給大家供大家參考,具體如下:
HTML代碼如下:
<!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <title>www.dbjr.com.cn jQuery響應(yīng)鼠標(biāo)移動(dòng)</title> <style> *{margin:0;padding:0;} ul,li{list-style:none;} div{font-family:"Microsoft YaHei";} html,body{width:100%; height:100%; background:#f2f2f2;} ul{margin-left:50px;} ul li{float:left;} ul li .outer{width:300px; height:250px;} ul li .outer .inner{width:300px; height:250px; background:rgba(0, 0, 0, .3);} </style> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> </head> <body> <ul> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/09.jpg" width="300px" height="250px" /> <div class="inner"> 我是圖片1 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/010.jpg" width="300px" height="250px" /> <div class="inner"> 我是圖片2 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/011.jpg" width="300px" height="250px" /> <div class="inner"> 我是圖片3 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/012.jpg" width="300px" height="250px" /> <div class="inner"> 我是圖片4 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/013.jpg" width="300px" height="250px" /> <div class="inner"> 我是圖片5 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/014.jpg" width="300px" height="250px" /> <div class="inner"> 我是圖片6 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/015.jpg" width="300px" height="250px" /> <div class="inner"> 我是圖片7 </div> </div> </li> <li> <div class="outer"> <img src="http://sandbox.runjs.cn/uploads/rs/253/e6wsbxul/016.jpg" width="300px" height="250px" /> <div class="inner"> 我是圖片8 </div> </div> </li> </ul> <script> (function($){ $.fn.extend({ show : function(div){ var w = this.width(), h = this.height(), xpos = w/2, ypos = h/2, eventType = "", direct = ""; this.css({"overflow" : "hidden", "position" : "relative"}); div.css({"position" : "absolute", "top" : this.width()}); this.on("mouseenter mouseleave", function(e){ var oe = e || event; var x = oe.offsetX; var y = oe.offsetY; var angle = Math.atan((x - xpos)/(y - ypos)) * 180 / Math.PI; if(angle > -45 && angle < 45 && y > ypos){ direct = "down"; } if(angle > -45 && angle < 45 && y < ypos){ direct = "up"; } if(((angle > -90 && angle <-45) || (angle >45 && angle <90)) && x > xpos){ direct = "right"; } if(((angle > -90 && angle <-45) || (angle >45 && angle <90)) && x < xpos){ direct = "left"; } move(e.type, direct) }); function move(eventType, direct){ if(eventType == "mouseenter"){ switch(direct){ case "down": div.css({"left": "0px", "top": h}).stop(true,true).animate({"top": "0px"}, "fast"); break; case "up": div.css({"left": "0px", "top": -h}).stop(true,true).animate({"top": "0px"}, "fast"); break; case "right": div.css({"left": w, "top": "0px"}).stop(true,true).animate({"left": "0px"}, "fast"); break; case "left": div.css({"left": -w, "top": "0px"}).stop(true,true).animate({"left": "0px"}, "fast"); break; } }else{ switch(direct){ case "down": div.stop(true,true).animate({"top": h}, "fast"); break; case "up": div.stop(true,true).animate({"top": -h}, "fast"); break; case "right": div.stop(true,true).animate({"left": w}, "fast"); break; case "left": div.stop(true,true).animate({"left": -w}, "fast"); break; } } } } }); })(jQuery) $(".outer").each(function(i){ $(this).show($(".inner").eq(i)); }); </script> </body> </html>
其中控制響應(yīng)鼠標(biāo)方向的JS代碼如下:
/* *使用說(shuō)明: * $(".a").show($(".b")) * a是展示層,b是遮罩層 * b在a的內(nèi)部 */ $(".outer").each(function(i){ $(this).show($(".inner").eq(i)); });
這里使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun運(yùn)行代碼,可得到如下效果:
完整實(shí)例代碼點(diǎn)擊此處本站下載。
更多關(guān)于jQuery相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jQuery窗口操作技巧總結(jié)》、《jQuery擴(kuò)展技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jQuery表格(table)操作技巧匯總》、《jQuery常見經(jīng)典特效匯總》及《jquery選擇器用法總結(jié)》
希望本文所述對(duì)大家jQuery程序設(shè)計(jì)有所幫助。
- JQuery獲取鼠標(biāo)進(jìn)入和離開容器的方向
- jquery實(shí)現(xiàn)的提示浮層跟隨鼠標(biāo)移動(dòng)
- Jquery實(shí)現(xiàn)鼠標(biāo)移動(dòng)放大圖片功能實(shí)例
- jQuery實(shí)現(xiàn)div跟隨鼠標(biāo)移動(dòng)
- jQuery實(shí)現(xiàn)鼠標(biāo)滑過圖片移動(dòng)特效
- jQuery 網(wǎng)易相冊(cè)鼠標(biāo)移動(dòng)顯示隱藏效果實(shí)現(xiàn)代碼
- Jquery創(chuàng)建層顯示標(biāo)題和內(nèi)容且隨鼠標(biāo)移動(dòng)而移動(dòng)
- JQuery實(shí)現(xiàn)鼠標(biāo)移動(dòng)圖片顯示描述層的方法
- jQuery鼠標(biāo)移動(dòng)圖片上實(shí)現(xiàn)放大效果
- jquery插件實(shí)現(xiàn)鼠標(biāo)經(jīng)過圖片右側(cè)顯示大圖的效果(類似淘寶)
- jQuery插件jFade實(shí)現(xiàn)鼠標(biāo)經(jīng)過的圖片高亮其它變暗
相關(guān)文章
jquery實(shí)現(xiàn)簡(jiǎn)易的移動(dòng)端驗(yàn)證表單
本文給大家匯總介紹了幾個(gè)常用的jquery實(shí)現(xiàn)簡(jiǎn)易的移動(dòng)端驗(yàn)證表單,非常的實(shí)用,有需要的小伙伴可以進(jìn)來(lái)參考下。2015-11-11jquery,js簡(jiǎn)單實(shí)現(xiàn)類似Angular.js雙向綁定
本文主要介紹了jquery,js簡(jiǎn)單實(shí)現(xiàn)類似Angular.js雙向綁定的方法。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01jquery實(shí)現(xiàn)側(cè)邊欄左右伸縮效果的示例
下面小編就為大家分享一篇jquery實(shí)現(xiàn)側(cè)邊欄左右伸縮效果的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2017-12-12JQuery each()函數(shù)如何優(yōu)化循環(huán)DOM結(jié)構(gòu)的性能
each()方法能使DOM循環(huán)結(jié)構(gòu)簡(jiǎn)潔,不容易出錯(cuò)。each()函數(shù)封裝了十分強(qiáng)大的遍歷功能,使用也很方便,它可以遍歷一維數(shù)組、多維數(shù)組、DOM, JSON 等等在javaScript開發(fā)過程中使用$each可以大大的減輕我們的工作量2012-12-12淺談jQuery before和insertBefore的區(qū)別
下面小編就為大家?guī)?lái)一篇淺談jQuery before和insertBefore的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-12-12