jQuery滑鼠懸浮聚焦效果詳解
分享一段程式碼例項,它實現了滑鼠懸浮聚焦效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> .listBox { padding: 50px; } .listBox li { width: 10px; height: 10px; cursor: pointer; float: left; border-radius: 50%; border: 2px solid #666; margin: 20px; position: relative; list-style-type: none; } </style> <script src="http://code.jquery.com/jquery-1.8.0.min.js"></script> <script type="text/javascript"> $(function() { $(".listBox li").each(function(i, e) { var xColor = "#666"; Eddy($(e), xColor); }); function Eddy(e, xColor) { $(e).hover(function() { var oColor = xColor, //線條顏色--最好與目標邊框顏色相同 oBorderSize = "1px", //線條高度--最好與目標邊框高度相同 speed = 1500, //進入速度 oBoxW = $(this).width(), oBoxH = $(this).height(); // 在目標元素中新增四個div作為線條 $(this).append("<div class='box_topL'></div>"); $(this).append("<div class='box_topR'></div>"); $(this).append("<div class='box_botL'></div>"); $(this).append("<div class='box_botR'></div>"); // 上左 $(".box_topL").css({ "width": "0px", "height": oBorderSize, "background": oColor, "position": "absolute", "top": "-1px", "left": -oBoxW * 1.5, }).animate({ width: oBoxW, left: '0px' }, speed, function() { $(this).fadeOut(); }); // 上右 $(".box_topR").css({ "width": oBorderSize, "height": "0px", "background": oColor, "position": "absolute", "top": -oBoxH * 1.5, "right": "-1px", }).animate({ height: oBoxH, top: '0px' }, speed, function() { $(this).fadeOut(); }); // 下左 $(".box_botL").css({ "width": oBorderSize, "height": "0px", "background": oColor, "position": "absolute", "bottom": -oBoxH * 1.5, "left": "-1px", }).animate({ height: oBoxH, bottom: '0px' }, speed, function() { $(this).fadeOut(); }); // 下右 $(".box_botR").css({ "width": "0px", "height": oBorderSize, "background": oColor, "position": "absolute", "top": oBoxH, "right": -oBoxW * 1.5, }).animate({ width: oBoxW, right: '0px' }, speed, function() { $(this).fadeOut(); }); }, function() { // 滑鼠離開刪除 $(".box_topL").remove(); $(".box_topR").remove(); $(".box_botL").remove(); $(".box_botR").remove(); }); }; }) </script> </head> <body> <ul class="listBox"> <li></li> <li></li> <li></li> </ul> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).$(function() {}),當文件結構完全載入完畢再去執行函式中的程式碼。
(2).$(".listBox li").each(function(i, e) {
var xColor = "#666";
Eddy($(e), xColor);
}),遍歷每一個li元素,利用Eddy()註冊事件處理函式。
(3).function Eddy(e, xColor) {},此函式可以實現為指定元素註冊事件處理函式,第一個引數是要註冊事件處理函式的元素物件。第二個引數是一個顏色值,後面會介紹到。
(4).$(e).hover(function() {}),為元素註冊hover事件處理函式。
(5).var oColor = xColor,將傳遞的顏色賦值給變數oColor。
(6).oBorderSize = "1px",設定邊框寬度為1px。這個效果的原理。其實四個方向分別有一個div元素,根據不同方位將其設定為寬度或者高度為0,那麼在視覺上通過邊框就形成了一個條狀;再通過動畫的方式設定它的寬度或者高度以及位置,綜合起來就形成了上述效果。
(7).speed = 1500,設定動畫完成的時間。
(8).oBoxW = $(this).width(),oBoxH = $(this).height(),獲取li元素的寬度和高度。
(9).$(this).append("<div class='box_topL'></div>"),為li元素追加左上側的元素。
(10).$(".box_topL").css({
"width": "0px",
"height": oBorderSize,
"background": oColor,
"position": "absolute",
"top": "-1px",
"left": -oBoxW * 1.5,
}),設定左上側元素寬度為0px,高度是1px,背景色為#666。
此元素為絕對絕對定位,top值為-1px,那麼元素恰好和元素頂部邊框在同一水平線。
(11)..animate({
width: oBoxW,
left: '0px'
}, speed, function() {
$(this).fadeOut();
}),以動畫方式設定橫條的寬度left值
動畫完成後,橫條隱藏。
二.相關閱讀:
(1).each()可以參閱jQuery each()一章節。
(2).hover()可以參閱jQuery hover事件一章節。
(3).append()可以參閱jQuery append()一章節。
(4).css()可以參閱jQuery css()一章節。
(5).animate()可以參閱jQuery animate()一章節。
(6).fadeOut()可以參閱jQuery fadeOut()一章節。
相關文章
- jQuery滑鼠懸浮翻牌效果詳解jQuery
- 滑鼠懸浮小圖彈出大圖效果詳解
- 滑鼠懸浮實現當前圖片高亮效果詳解
- jQuery 滑鼠懸浮連結彈出跟隨圖片詳解jQuery
- CSS 滑鼠懸浮動畫暫停效果CSS動畫
- css滑鼠懸浮下拉選單效果CSS
- jQuery滑鼠懸浮當前圖片高亮其他圖片灰暗效果jQuery
- jquery滑鼠懸浮彈出帶有箭頭的tips效果jQuery
- CSS滑鼠懸浮行背景變色效果CSS
- css滑鼠懸浮div背景變色效果CSS
- 滑鼠懸浮div實現旋轉效果
- CSS3滑鼠懸浮元素放大效果CSSS3
- CSS滑鼠懸浮圖片動畫放大效果CSS動畫
- CSS3滑鼠懸浮環裝遮罩效果CSSS3遮罩
- CSS3滑鼠懸浮div旋轉效果CSSS3
- 滑鼠懸浮實現環形旋轉效果
- CSS3滑鼠懸浮動畫按鈕效果CSSS3動畫
- CSS3連結<a>滑鼠懸浮動畫效果CSSS3動畫
- css3滑鼠懸浮小球彈性效果CSSS3
- 滑鼠懸浮評分效果程式碼例項
- CSS滑鼠懸浮圖片模糊切換效果CSS
- css滑鼠懸浮彈出說明層效果CSS
- 滑鼠懸浮圖片實現翻轉效果
- 滑鼠懸浮圖片實現縮放效果
- 滑鼠懸浮實現連結背景變色效果
- css滑鼠懸浮小圖彈出大圖效果CSS
- css滑鼠懸浮tips效果程式碼例項CSS
- js滑鼠懸浮字串實現字串跳動效果JS字串
- 滑鼠懸浮實現翻牌效果程式碼例項
- CSS3滑鼠懸浮圖片閃動效果CSSS3
- CSS3滑鼠懸浮交叉線效果按鈕CSSS3
- jQuery實現的滑鼠懸浮和選中實現表格行背景變色效果jQuery
- [譯] CSS 變數實現炫酷滑鼠懸浮效果CSS變數
- CSS3 滑鼠懸浮元素放大和縮小效果CSSS3
- 實現滑鼠懸浮table表格行背景變色效果
- js滑鼠懸浮連結背景動畫方式漸變效果JS動畫
- 滑鼠懸浮遮罩層動畫方式滑動切換效果遮罩動畫
- 滑鼠懸浮實現圖片動畫上下切換效果動畫