自寫(xiě)的一個(gè)jQuery圓角插件
使用方法:
$('.test').rounder();
這樣會(huì)根據(jù)默認(rèn)的設(shè)置產(chǎn)生一個(gè)圓角框,效果如圖:
圓角處會(huì)有點(diǎn)鋸齒:(
如果僅此而已,那肯定是不夠的。我們會(huì)想加上自己的一個(gè)樣式該怎么辦?使用方法:
$('.test').rounder({borderColor:'red',backgroundColor:'#EEE',color:'blue'});
效果如圖:
接下來(lái)我就來(lái)講講實(shí)現(xiàn)過(guò)程了,先附上jQuery代碼如下:
(function($){
$.fn.rounder=function(options){
var setting=$.extend({backgroundColor:'#FFF',borderColor:'#AAA',color:'#000'},options||{});
this.each(function(){
var source=$(this);
var container=source.parents(".mapping_rounder");
if(container.size()<=0){
container=$('<div class="mapping_rounder"></div>');
source.before(container);
//添加1pxDIV
container.append('<div class="rounder_px3"></div><div class="rounder_px2"></div><div class="rounder_px1"></div><div class="rounder_px0"></div><div class="rounder_content"></div><div class="rounder_px0"></div><div class="rounder_px1"></div><div class="rounder_px2"></div><div class="rounder_px3"></div>');
container.find('.rounder_content').append(source);
//保持原有的形態(tài),如:高度、寬度等
container.width(source.width());
source.width(source.width()-12);
container.height(source.height());
source.height(source.height()-8);
source.css('lineHeight',source.height()+'px');
container.css('marginTop',source.css('marginTop'));
source.css('marginTop',0);
container.css('marginBottom',source.css('marginBottom'));
source.css('marginBottom',0);
container.css('marginLeft',source.css('marginLeft'));
source.css('marginLeft',0);
container.css('marginRight',source.css('marginRight'));
source.css('marginRight',0);
}
//給1pxDIV添加樣式以產(chǎn)生圓角邊框的效果
container.find('.rounder_px3').css('backgroundColor',setting.borderColor);
container.find('.rounder_px2').css({borderColor:setting.borderColor,backgroundColor:setting.backgroundColor});
container.find('.rounder_px1').css({borderColor:setting.borderColor,backgroundColor:setting.backgroundColor});
container.find('.rounder_px0').css({borderColor:setting.borderColor,backgroundColor:setting.backgroundColor});
container.find('.rounder_content').css({borderColor:setting.borderColor,backgroundColor:setting.backgroundColor});
//去除原有的樣式
source.css('borderStyle','none');
source.css('backgroundColor',setting.backgroundColor);
source.css('color',setting.color);
});
}
})(jQuery);
CSS文件代碼:
.rounder_content{padding:0 5px;border-left:1px solid;border-right:1px solid;}
.rounder_px0{margin:0;height:2px;border-left:2px solid;border-right:2px solid;overflow:hidden;}
.rounder_px1{margin:0 1px;height:1px;border-left:2px solid;border-right:2px solid;overflow:hidden;}
.rounder_px2{margin:0 2px;height:1px;border-left:3px solid;border-right:3px solid;overflow: hidden;}
.rounder_px3{margin:0 3px;height:1px;background:#AAA;overflow:hidden;}
本來(lái)這個(gè)CSS文件的樣式都可以用jQuery加上去,但那樣會(huì)多很多代碼,且讓我在此偷下懶- -|||。樣式里面加上overflow:hidden;的目的是為了兼容IE6,因?yàn)樵贗E6里面DIV會(huì)有個(gè)默認(rèn)的最小高度,好像是13px。
功能非常簡(jiǎn)單,但可以應(yīng)用到我們常見(jiàn)的應(yīng)用中,如下:
<script type="text/javascript">
$(document).ready(function(){
$('.test').rounder({borderColor:'#AAA',color:'#000'});
$('.test').focus(function(event){$(event.target).rounder({borderColor:'red',backgroundColor:'#EEE',color:'blue'});});
$('.test').blur(function(event){$(event.target).rounder({borderColor:'#AAA',color:'#000'});});
});
</script>
即文本框加上圓角,獲取焦點(diǎn)時(shí)呈現(xiàn)一種樣式,失去焦點(diǎn)時(shí)再呈現(xiàn)另一種樣式。
當(dāng)然,我們可以通過(guò)和jQuery本身強(qiáng)大的功能結(jié)合來(lái)滿(mǎn)足不同的需求。
優(yōu)點(diǎn):
體積小,兩個(gè)文件經(jīng)過(guò)壓縮后只有2.23kb
簡(jiǎn)單易用
不足:
邊框弧度和線(xiàn)條的粗細(xì)不能調(diào)節(jié)(如果需要請(qǐng)參考jquery.corner插件)
高度和字符大小配合的不是很好,有時(shí)字符會(huì)被遮住一半
測(cè)試通過(guò)IE6、FF、Opera、Safari、Chrome
- CSS+Jquery實(shí)現(xiàn)頁(yè)面圓角框方法大全
- 超級(jí)好用的jQuery圓角插件 Corner速成
- jquery 圓角遮罩圖片實(shí)現(xiàn)圖片圓角
- 基于jQuery實(shí)現(xiàn)網(wǎng)頁(yè)進(jìn)度顯示插件
- 基于jQuery實(shí)現(xiàn)仿淘寶套餐選擇插件
- jquery 插件實(shí)現(xiàn)多行文本框[textarea]自動(dòng)高度
- jQuery插件開(kāi)發(fā)的五種形態(tài)小結(jié)
- jquery手風(fēng)琴特效插件
- jquery插件corner實(shí)現(xiàn)圓角邊框的方法
相關(guān)文章
jquery簡(jiǎn)單瀑布流實(shí)現(xiàn)原理及ie8下測(cè)試代碼
可以將分頁(yè)獲取的內(nèi)容依次填入四個(gè)div中,瀑布流的分頁(yè)可以以多頁(yè)(比如5頁(yè))為單位二次分頁(yè),這樣可以減少后臺(tái)算法的復(fù)雜度;測(cè)試環(huán)境:ie8 ff13.0.1 chrome22有興趣的朋友可以了解下2013-01-01jQuery插件echarts設(shè)置折線(xiàn)圖中折線(xiàn)線(xiàn)條顏色和折線(xiàn)點(diǎn)顏色的方法
這篇文章主要介紹了jQuery插件echarts設(shè)置折線(xiàn)圖中折線(xiàn)線(xiàn)條顏色和折線(xiàn)點(diǎn)顏色的方法,結(jié)合實(shí)例形式分析了jQuery圖表插件echarts設(shè)置折線(xiàn)圖的相關(guān)操作技巧,需要的朋友可以參考下2017-03-03Jqgrid表格隨窗口大小改變而改變的簡(jiǎn)單實(shí)例
本篇文章主要是對(duì)Jqgrid表格隨窗口大小改變而改變的簡(jiǎn)單實(shí)例進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12jQuery實(shí)現(xiàn)區(qū)域打印功能代碼詳解
這篇文章主要介紹了jQuery實(shí)現(xiàn)區(qū)域打印功能代碼詳解的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06jquery驗(yàn)證郵箱格式是否正確實(shí)例講解
這篇文章主要介紹了一個(gè)jquery驗(yàn)證郵箱格式是否正確的實(shí)踐案例,利用正則表達(dá)式進(jìn)行驗(yàn)證,感興趣的小伙伴們可以參考一下2015-11-11jquery 學(xué)習(xí)之二 屬性 文本與值(text,val)
jquery 學(xué)習(xí)之二 屬性 文本與值(text,val),學(xué)習(xí)jquery的朋友可以參考下。2010-11-11EasyUi tabs的高度與寬度根據(jù)IE窗口的變化自適應(yīng)代碼
EasyUi tabs的高度與寬度根據(jù)IE窗口的變化自適應(yīng)代碼,需要的朋友可以參考下。2010-10-10