本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 [署名 4.0 国际 (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/deed.zh) 本文作者: 苏洋 创建时间: 2012年11月29日 统计字数: 2030字 阅读时间: 5分钟阅读 本文链接: https://soulteary.com/2012/11/29/jquery-diary-opacity.html ----- # jQuery 笔记:突出焦点(透明度) 高手莫入,浅显例子而已。最近在更换项目中的javascript库,觉得如果能把实践的过程记录下来,应该可以帮助到一些对javascript感兴趣的前端初学者。 ![jq-obj-opacity](https://attachment.soulteary.com/2012/11/29/jq-obj-opacity.png "jq-obj-opacity") 或许有的时候,你需要在一堆一样的图片或者图标中突显某一个元素。 有一个不错的方案,就是将你要凸显的内容的透明度降低,而其他的元素的透明度调高。 完整例子: http://thecdn.sinaapp.com/page/demo/jq-obj-opacity/ 页面结构可以是下面的样子,对你想要突出显示的内容带上相同的class属性。 比如:obj-opacity ```html JQUERY OBJECT OPACITY

这个小图需要点击来触发,原因看代码.

``` 接着把你的元素简单的展示组合一下 ```css *,html,body,div,ul,li{ margin: 0; padding: 0; } html,body,div,ul,li{ display: block; float: left; } body{ background-color: #EEE; } div#warp{ width: 260px; height: 180px; left: 50%; top: 50%; margin-left: -130px; margin-top: -90px; background-color: #DDD; position: absolute; } div#warp div#logo{ background: url(logo.png) 0 0 no-repeat; width: 64px; height: 64px; margin: 30px; opacity:.9; } div#warp ul#img-list{ clear: left; } ul#img-list li.obj-opacity{ background: url(small.png) 0 0 no-repeat; width: 32px; height: 32px; margin: 10px; cursor: pointer; } div#single-pic img.single{ position: absolute; top: 20px; left: 130px; } div#single-pic p{ position: absolute; font: 9px/1.25 sans-serif; color: #999; display: block; width: 90px; left: 160px; top: 12px; } /*初始化的透明度*/ .obj-opacity{ opacity: .1; } ``` 接着就是jQuery插件的源代码: 因为有上一篇文章的铺垫,这篇就可以简单的注释了吧。 ```js /* SOULTEARY.COM _____ ____ __ ____ _______________ ______ __ / ___// __ \/ / / / / /_ __/ ____/ | / __ \ \/ / \__ \/ / / / / / / / / / / __/ / /| | / /_/ /\ / ___/ / /_/ / /_/ / /___/ / / /___/ ___ |/ _, _/ / / /____/\____/\____/_____/_/ /_____/_/ |_/_/ |_| /_/ */ ;(function($){ $.fn.extend({ "objOpacity": function(params){ params = $.extend({ warp:'#warp', //查找元素的限定容器 target:'.obj-opacity', //目标元素具备的类名 hover:'effect', //具备焦点后添加类名 event:'mouseover', //触发焦点的事件 bevent:'mouseout', //失去焦点的事件[唯一时触发] focus:1, //获得焦点后的透明度 blur:.1, //失去焦点后的透明度 speed:600 //动画速度(单位ms) },params); $(document).ready(function(){ var target = $(params.target); var count = target.length; if (!count) {return;} var warp = $(params.warp); var o = 0; var tarClass = params.target.replace('.',''); warp.bind(params.event, function(e){ var cur = e.target; if (!$(cur).hasClass(tarClass)) {return;} target.removeClass(params.hover); $(cur).addClass(params.hover); for(var i=0;i