您好,欢迎访问一九零五行业门户网

基于mootools的圆角边框扩展代码_Mootools

jquery下面有个扩展是用纯js生成的圆角,不过和div+css拼出来是一样的道理,圆角看上去都比较粗糙。
用背景图片要好看得多,问题是不能拉伸,最简单做法就是用四个角小图片加边框拼出来。不过这样多出n多图片,一堆乱七八糟的代码,相当不爽。
有一个很有技巧的方法,用一张大图片+css来做,原理如下。
用一张大的背景图片做圆角,用css分别取四个角和边再拼成一个div。这样不仅可以解决圆角,还可以生成其它特殊的边框(比如阴影)。
但是每次使用都要加css也很不爽,于是用mootools写了一个element类的扩展。
复制代码 代码如下:
setborder
element.implement({
setborder: function(pic, len) {
///
/// 设定容器边框(图片).
/// 已测div
///
/// 图片地址
/// 边框宽度
///
var content = this.clone();
var width = this.getsize().x + len * 2;
var height = this.getsize().y + len * 2;
this.empty().setstyles({ 'width': width, 'height': height });
var lt = new element('div', {
'styles': {
'width': len,
'height': len,
'float': 'left',
'background': 'url(' + pic + ') no-repeat left top'
}
});
var rt = new element('div', {
'styles': {
'width': width - len,
'height': len,
'float': 'left',
'background': 'url(' + pic + ') no-repeat right top'
}
});
var lb = new element('div', {
'styles': {
'width': len,
'height': height - len,
'float': 'left',
'background': 'url(' + pic + ') no-repeat left bottom'
}
});
var rb = new element('div', {
'styles': {
'width': width - len,
'height': height - len,
'float': 'left',
'background': 'url(' + pic + ') no-repeat right bottom'
}
});
content.inject(rb, 'top');
lt.inject(this, 'top');
rt.injectbottom(this);
lb.injectbottom(this);
rb.injectbottom(this);
return this;
}
});
这样在页面上直接调用setborder方法传个背景图片,边框宽度进去就行了。
html代码
复制代码 代码如下:
untitled page
显显示效果
mootools边框demo http://demo.jb51.net/js/mootools_yj/demo.htm
打包下载
untitled page
需要刷新一下才能加载外部js框架
[ctrl+a 全选 注:如需引入外部js需刷新才能执行]
以前用jquery也写过一个,居然找不着了,不过原理是一样的。
其它类似信息

推荐信息