最*这水*越来越退步,想写个js组件,但一直担搁,退而求次之,搞个jq插件还是可以滴。没想到,想半天不得其法,没办法,只能参考一个吧。以下看客不要太认真全是抄来的。

原始地址:

 

jscoll 的优点就不一一列举了,说一下缺点:

1. 众多灵活的参数配置,在灵活的背后牺牲了傻瓜操作可控性, 让一些不懂css的程序员,不懂jq的美工,咬牙切齿,遂有重写一个的想法。

2. jscoll的js代码虽然没有加密混淆,但是2字母式的变量名,让我望其却步,可维护可扩展性,无从谈起。

3. css全是内联style式的,这种虽然必杀效果的同时,也杀了页面可维护性,而且利用css属性选择器的特性,jq的配置参数没必要这么烦琐。

 

一、jq插件的写法:

1. 第一种是直接挂在$这个工厂函数上的。

jQuery.extend:  对jQuery对象本身扩展,不需要实例jq对象就可以使用 。
$.extend({
    add: function(a, b){
        return a + b;
    }
});

//这是多个扩展的写法,如果是一个的话,则是:

$.add = function(a, b){
    return a - b;
}; 

 

//调用时:

alert($.add(3, 4)); 

 

 

2. 第二种是需要应用在jq对象上的,所以是另外一种写法:

$.fn.extend({
    color: function(val){
        if(val == undefined){
            return $(this).css('color');
        } else {
            return $(this).css('color', val);
        }
    }
});

//要是只扩展一个的话:

$.fn.color = function(){

   //do something

}

//调用时:

$('#text').color('#f00') 

 

默认的滚动条,样式过于单一,又不是动态修改,故而废之,重新来一个:

在写插件之前,必先写html结构样式,大概解释一下:

reset

*{margin:0;padding:0;}
body
{font:12px/2 arial;background:#333;}

例子准备包在最外层容器,以及里边内容的容器,.jkscool-wrap 是写relative 的原因是为了右边滚动条的定位,而.jkscoll-cont写relative的目的是为了内容的滚动。

.jk-scrolldemo{width:700px;padding:1px;margin:20px auto;border:1px solid #ccc;background:#fff;}
.jkscroll-wrap
{position:relative;padding:0;height:200px;overflow:hidden;}
.jkscroll-cont
{position:relative;padding-right:15px;top:0px;z-index:9999;}

里边要滚动内容的样式,没有什么特别之处:

.jkscroll-text{padding:5px;}
.jkscroll-text p
{margin-bottom:10px;}

滚动条的样式,这里边比较讲究,首先来说,.jkscroll-bar 的position:absolute,这个是有来历的,由于外层是position:relative,所以里层是absolute的话,则会以外层的左上角为位移参考对齐。当然外层只写position:relative,不写top,left两值。如果写这两个值又是怎么会事呢?如果写上这两个值,则表示以:以这个元素的本来应该在的位置为布局参照原点。

 

还有一种情况是,只是一个position:absolute;外层没有position:relative,这时会找寻那个点为参考呢?这时候的原则是:如果某父级元素中有relative者,则以某父级元素为参考原点,如果没有position:relative,则以body为参考原点。如果position:absolute外层没有relative时,这两个布局上是没有区别的。

 

当然最后一种情况是:外层是:position:absolute;里边是position:relative,那会是什么情况?按着原来的原则,absolute会参考body为布局原点,relative会参考他本来应该在的位置为布局原点,这时候其实就是参考外层左上角为布局原点。

当然该是上个栗子的时候了:

 

相关文章:

猜你喜欢
相关资源
相似解决方案
热门标签