摘要: 1. clientHeight : 都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。 2. clientLeft,clientTop:这两个返回的是元素周围边框的厚度,如果不指定一个边框或者不定位改元素,他的值就是0. 3. scrollHeight,scrollWidth:不管有多少对象在页面上可见,他...阅读全文
posted @ 2010-08-07 17:00 Jikey 阅读(271) 评论(0) 编辑
摘要: 源自于:http://bbs.blueidea.com/thread-2860424-1-1.html这个主要用来,写测试例子时搭配色。阅读全文
posted @ 2010-05-14 09:17 Jikey 阅读(324) 评论(1) 编辑

最近早上有空,不想des,想找本书看看,js王者归来伤透我心,悟透js就没信心了,还是回归国外大师们的作品比较保险,javascript dom 高级程序设计,这是李松峰与人民邮电的第一次合作,十分值得纪念。里边的内容可圈可点,虽然是2008年左右出的书,一点也不感觉过时,搞不懂好多人不知道什么原因忽略了这本书。还记得参加webrebuild时龙刚推荐过此书,想想已经快两年过去了。时光为流水,一去不复返,今,正风华正茂,逆流而上,方显英雄本色。莫蹉跎了年华,辜负了佳人,遗恨终生。

posted @ 2012-02-10 10:12 Jikey 阅读(3) 评论(0) 编辑
比dw强大的地方有:
1. 对js的开发有长足的支持,那些自动提示,代码主题,调试之类的我就不说了,主要是对流行技术的支持,比如Node.js,less,sass,jq,ext,prototype等框架的支持 。
2. 自身对插件的支持,主要体现在webstorm 2.0以后就已经包涵了zencoding了,而如果dw不是完整版的话,zencoding的安装难度可想而知。如果是完整版的话,就不得不忍受一坨无用的插件。
3. 团队开发的支持,主要体现在svn,git等版本管理工具,无须引入,直接可用。而且单文件还支持本地历史记录。
4. 插件的支持,主要体现在vim,可直接安装插件,还有其它的插件等待着你去挖掘。
dw比webstorm的优点,那就是dw的内存占用大概平常80M左右,而webstorm得300M左右,这是我发现唯一dw的长处。
如果说,dw是美工偶尔拖拖表格,写写css的小工具的话,那么webstorm是前端开发的必备利器,不只是对html,css的抒写比较强悍,而且对js,jq等其它js框架开发更是完美。
简单的说:dw就是一个编辑器,而webstorm是一个IDE。
另外一个,dw自从cs4之后,就已经无路可走,本来近几年的js开发如火如荼,看看这帮2B在dw cs5里边添加的那些隔靴搔痒的新功能,想想都笑,用户在不断的成长,市场在不断的变化,而这帮2B还在沉睡,残酷的市场如金的岁月会检验具有竞争力的产品。相比于dw的固步自封,webstorm正在走上坡路。这里不得不提一下另外一款:aptana ,本身在js方面有一定的靓点,可惜现在搞得跟dw一样,没有抓住现下流行的趋势,一直吃老本。看看aptana 3.0那些2B的功能,就能原谅dw现在还是这个样子。
当然一分为二的看的话:如果你只是想拖拖表格,搞搞css,dw cs4 是目前市场上比较适合的编辑器。他的html结构自动识别折叠,能很快找到不完整的div,ctrl + d,跳到定义的class位置等等,是其它编辑器所没有的,在加上zencoding的话,写写静态页面足矣!
如果你不只是想折腾css,而是想捣鼓捣鼓js,less,sass,node.js等等之类的新玩意,也想试试vim结合传统编辑器的威力,那webstorm绝对是你最佳的选择。如果你是phper,我推荐phpstorm,它包含所有webstorm的功能。
本人已经转向从dw cs4转向 webstorm了,所有的代码提交到google svn,下班前提交代码,回家后更新代码。如此,空手上下班,又何妨。
posted @ 2012-02-10 09:10 Jikey 阅读(8) 评论(0) 编辑

 

合适的工具会事半功倍,当然也得把握分寸,要不就成了会得越多干的越多的“苦力者”。
编辑类软件层出不群,各有所长,各有所短。找到一个合适的还真是难。还好有webstorm的出现,最近又是3.0的新版本发布。为什么这么说呢,她与其它的编辑器有什么不同:
1. 任何一个编辑器都需要保存(ctrl + s),这是所有win平台上编辑类软件的特点,但是webstorm编辑文件右上角是没有那个熟悉的米号的。

换句话说,所有的操作都直接存储,这样带来的坏处就是,没有以前的米号标识,万一键盘误操作也会被立即存储。

省去了ctrl + s之后,在结合Firefox的vim,基本不动鼠标就可以看到结果页面了。

2. 任何一个编辑器只要文件关闭了就没有历史记录了,但是webstorm有。就是说,只要webstorm不关闭,你的文件随时可以返回到之前的操作,webstorm关闭重启后这些历史记录就没有了。这样的坏处也是显然的,由此带来的内存消耗也必然比较大。
3. 任何一个编辑器,除了服务器svn之外,没有本地版本,但是webstorm提供一个本地文件修改历史记录。

4. 与时俱进的眼光。zencoding于2009年出现于it界,在这之后,鲜有工具直接集成到里边。webstorm 2.0之后就集成了。node.js,html5,git,cvs等 就不一一列举了。

5. 提供的插件也是比较齐全,安装非常方便。这样带来了另外的问题,以前的eclipse是安装第三方的,webstorm貌似不能安装第三方的插件。

6. 可以导出当前设置:File -> Export setting 下面就是导入设置。

 

其它的使用:

1. 主题,参照这里。(所需的文件下载 第4条中setting.rar即可,里边包括文章中提到的颜色配置文件)

2. 添加VIM插件:
File -> Settings -> Plugins -> Browse repositories -> 搜索vim,对它单击右键Download and install,然后重启IDE就可以了。
重启之后,控制台会输出: “8:50:07 IdeaVim: Vim keymap was successfully enabled” 说明vim插件安装成功。另外在aptana2.0里边安装vim插件,真是头痛,所有的文件都支持vim模式,在.html居然不支持,郁闷。

这样会出现另外一个问题,我如果想用ctrl+c,ctrl+v等一些默认的快捷键,该如何呢?安装VIM之后修改Defualt ,在Main menu -> Edit -> Copy 单击右键 Remove ctrl + Insert 只会剩下一个ctrl + c。这样配置后,可以使用部分默认的快捷键,90%的VIM快捷键。这之后还有个问题需要注意,在webstorm重启之后,又被全局默认为vim快捷键,需要在File -> Setting -> Keymap -> Keymaps 中选择Default copy,要不然,还是全局的VIM快捷键。

3. 除了webstorm之外,此公司还提供另外一个针对phper的开发工具,phpStorm,主页上说明,phpstorm包括所有webstorm的功能。但是习惯于大括号去方法名在同一行显示,所以还得配置:

File -> Settings -> code style -> PHP -> Wrapping and Braces -> Braces placement ->

In method declaration : End of line.

4. zencoding由于其提供的快捷键,确实 zencoding快捷键修改:

File -> Setting -> Live Templates

这里边如果你修改一个没有什么特别的,但是如果要添加一个需要在下面需要类型:No applicable contexts yet. Define ,单击Define选择要添加的类型。

如何合理的修改,参考这里

如果你对我修改后的文件设置感兴趣请点这里下载。 (其中就是从我的webstorm导出的setting.jar文件,包括主题,快捷键,zencoding.css等)

一次性导入:

导入:File -> Import settings...
下载后单独模块配置目录:win7 -> C:\Users\jikey(用户名)\.WebIde10\config

也可以一次性导出settings : File -> Export sttings...

5. 在开发js时发现,需要ctrl + return 才能选候选项,又需要配置:

File -> Setting -> Editor -> Code Completion -> Preselect the first suggestion:

'Smart' 改为 Always

6. 注意的地方是:Webstorm的调试是不支持中文路径中文文件名。

以下是webstorm的快捷键说明:

1. ctrl + shift + n: 打开工程中的文件(类似于eclipse中的ctrl+shift+R),目的是打开当前工程下任意目录的文件。
2. ctrl + j: 输出模板
3. ctrl + b: 跳到变量申明处
4. ctrl + alt + T: 围绕包裹代码(包括zencoding的Wrap with Abbreviation)
5. ctrl + []: 匹配 {}[]
6. ctrl + F12: 可以显示当前文件的结构 
7. ctrl + x: 剪切(删除)行,不选中,直接剪切整个行,如果选中部分内容则剪切选中的内容
8. alt + left/right:标签切换
9. ctrl + r: 替换
10. ctrl + shift + up: 行移动
11. shift + alt + up: 块移动(if(){},while(){}语句块的移动)
12. ctrl + d: 行复制
13. ctrl + shift + ]/[: 选中块代码<table>....</table>
14. ctrl + / : 单行注释
15. ctrl + shift + / : 块注释
16. ctrl + shift + i : 如果是css中的class则显示当前class详细信息,如果是js则显示function的详细信息(想象一下,如果在jquery的方法上查看详细信息,就直接可以看到实现代码了),如果是php,那当时还是function的详细信息

 

17. ctrl + '-/+': 可以折叠项目中的任何代码块,包括htm中的任意nodetype=3的元素,function,或对象直接量等等。它不是选中折叠,而是自动识别折叠。
18. ctrl + '.': 折叠选中的代码的代码。
19. shift + esc: 当前激活的任意小窗口最小化,也可以是alt + '数字键',数字在小窗口标题栏上有显示。
20. alt + '7': 显示当前的函数结构。类似于eclipse中的outline的效果。试验了一下,要比aptana的给力一些,但还是不能完全显示prototype下面的方法名。
21. 如果是*.html页面,则在文件名下的导航栏某DOM结构上右键,可以全选当前DOM结构。

22. 项目中添加对jQuery的支持。

File -> settings -> Javascript Libraries -> Add

在files中添加路径,在documentations urls中添加文档支持。这里边需要注意一下的是,要添加原始未压缩的代码,*.min.js版的方法是不会被提示。

添加完成后,右边菜单中还有一 download 按钮,单击之后,他会自动选择最新版的js库进行搜索,然后在弹出的列表中,再单击选择一个后,点击Download and Install之后,才会被下载。这块体验不是太好,没有checkbox,也没有radio,只是选中后整行变暗。 

如果添加多个版本的jQuery,就可以直观的看到各个版本之间新方法的差别了。

* 在这项的子菜单中 Usage Scope 右边 Project 第二栏Library下单击,选择新添加的jQuery,使其对整个项目进行覆盖。

也可以在当前页面右键Use JavaScript Library 中选择最顶的刚添加的jQuery支持。 

 

当然,并不是添加的越多越好,添加的多之后,在代码提示后会有数毫秒的延迟,需要谨慎选择最新版。 

以下是jquery1.1在ws中效果,还有底下显示vim启动运行的提示,左侧显示数字标题栏名称。

 

以下vim常用快捷键:

一. 移动:
    h,j,k,l: 左,下,上,右。
    w: 下一个词的词首。W:下一个单词(不含标点)。
    e:下一个词的词尾。E:不含标点。
    b:上一个词的词首。B:不含标点。
    <>: v 模式选中后进行缩进。
二. 跳转:
    %: 可以匹配{},"",(),[]之间跳转。
    H、M、L:直接跳转到当前屏幕的顶部、中部、底部。
    #H:跳转到当前屏的第#行。
    #L:跳转到当前屏的倒数第#行。
    zt: 当前编辑行置为屏顶。
    zz: 当前编辑行置为屏中。
    zb: 当前编辑行置为屏底。
    G:直接跳转到文件的底部。
    gg: 跳转到文件首。
    gd: 跳转到光标所在函数和变量的定义。
    ():跳转到当前的行首、行尾。
    {}:向上、向下跳转到最近的空行。
    [{:跳转到目前区块开头。
    ]}:跳转到目前区块结尾。
    0: 跳转到行首。
    $: 跳转到行尾。
    2$: 跳转到下一行的行尾。
    #:跳转到该行的第#个位置。
    #G: 15G,跳转到15行。
    :#:跳转到#行。
三. 选择:
    1.v: 开启可视模式。 V: 开启逐行可视模式。
    2.^V: 矩形选择。
    3.v3w: 选择三个字符。 
    4.ab:包括括号和()内的区域。
    5.aB:包括括号和{}内的区域。
    6.ib:括号()内的区域。
    7.iB:括号{}内的区域。
    8.aw:标记一个单词。
四. 编辑:
    1. 新增:
        i: 光标前插入。
        I: 在当前行首插入。
        a: 光标后插入。
        A: 当前行尾插入。
        O: 在当前行之前插入新行。
        o: 在当前行之后插入新行。
    2. 修改 c(change) 为主:
        r: 替换光标所在处的字符。
        R:替换光标所到之处的字符。
        cw: 更改光标所在处的字到字尾处。
        c#w: c3w 修改3个字符。
        C:修改到行尾。
        ci':修改配对标点符号中的文本内容。
        di':删除配对标点符号中的文本内容。
        yi':复制配对标点符号中的文本内容。
        vi':选中配对标点符号中的文本内容。
        s:替换当前一个光标所处字符。
        #S:删除 # 行,并以新文本代替。
    3. 删除 d(delete) 为主:
        D:删除到行尾。
        X: 每按一次,删除光标所在位置的前面一个字符。
        x: 每按一次,删除光标所在位置的后面一个字符。
        #x: 删除光标所在位置后面6个字符。
        d^: 删至行首。
        d$: 删至行尾。
        dd:(剪切)删除光标所在行。        
        dw: 删除一个单词/光标之后的单词剩余部分。
        d4w: 删除4个word。
        #dd: 从光标所在行开始删除#行。
        daB: 删除{}及其内的内容。
        diB: 删除{}中的内容。
        n1,n2 d:将n1,n2行之间的内容删除。
    4. 查找:
        /: 输入关键字,发现不是要找的,直接在按n,向后查找直到找到为止。
        ?: 输入关键字,发现不是要找的,直接在按n,向前查找直到找到为止。
        *: 在当前页向后查找同一字。
        #: 在当前页向前查找同一字。
    5. 复制 y(yank)为主:
        yw: 将光标所在之处到字尾的字符复制到缓冲区中。
        #yw: 复制#个字到缓冲区。
        Y:相当于yy, 复制整行。
        #yy:表示复制从光标所在的该行往下数#行文字。
        p: 粘贴。所有与y相关的操作必用p来结合粘贴。
        ]p:粘贴到合适的缩进处。
        n1,n2 co n3:复制第n1行到第n2行之间的内容到第n3行后面。
    6. 大小写转换:
        gUU: 将当前行的字母改为大写。
        guu: 将当前行的字母改为小写。
        gUw: 将当前光标下的单词改为大写。
        guw: 将当前光标下的单词改为小写。
        a. 整篇大写:
        ggguG
        gg: 光标到文件第一个字符。
        gu: 把选择范围全部小写。
        G: 到文件结束。
        b. 整篇小写:gggUG
    7.  其它:
        J:当前行和下一行合并成一行。
    8.  移动:
        n1,n2 m n3:将n1行到n2行之间的内容移至n3行下。

这样几番配置认识:

1. 在javascript方面比aptana更接近于当前的流行开发趋势。

2. 在html,css上比dreamweaver更大胆,更有洞察力。

3. 在php上比zendstudio更带有一点英雄主义色彩。

4. 在java上,此公司提供另外一款工具:IntelliJ IDEA

可以看出纯英文的界面,多如牛毛的快捷键,不推荐新手使用。太方便就会容易培养惰性,而惰性是开发人员的大敌。

 

最后感谢火爷,是火爷教会我使用webstorm。火爷一直是走在技术前沿的pyer.

 

欢迎转载,但是必须保留本文的署名豪情(包含链接)。

posted @ 2012-01-16 14:52 Jikey 阅读(1916) 评论(3) 编辑
posted @ 2011-12-29 14:19 Jikey 阅读(86) 评论(1) 编辑

IE下运行后,刷新。

posted @ 2011-12-28 11:52 Jikey 阅读(44) 评论(0) 编辑
一. 移动:
    h,j,k,l: 左,下,上,右。
    w: 下一个词的词首。
    e:下一个词的词尾。
    b:上一个词的词首。
    <>: v 模式选中后进行缩进。
二. 跳转:
    %: 可以匹配{},"",(),[]之间跳转。
    H、M、L:直接跳转到当前屏幕的顶部、中部、底部。
    #H:跳转到当前屏的第#行。
    #L:跳转到当前屏的倒数第#行。
    zt: 当前编辑行置为屏顶。
    zz: 当前编辑行置为屏中。
    zb: 当前编辑行置为屏底。
    G:直接跳转到文件的底部。
    gg: 跳转到文件首。
    ():跳转到当前的行首、行尾。
    {}:向上、向下跳转到最近的空行。
    [{:跳转到目前区块开头。
    ]}:跳转到目前区块结尾。
    0: 跳转到行首。
    $: 跳转到行尾。
    2$: 跳转到下一行的行尾。
    #:跳转到该行的第#个位置。
    #G: 15G,跳转到15行。
    :#:跳转到#行。
    f'n':跳转到下一个"n"字母后。
    ctrl+b: 向后翻一页。
    ctrl+f:向前翻一页。
    ctrl+u: 向后翻半页。
    ctrl+d: 向前翻半页。
    ctry+e: 下滚一行。

三. 选择:
    1.V: 选择一行。
    2.^V: 矩形选择。
    3.v3w: 选择三个字符。  
四. 编辑:
    1. 新增:
        i: 光标前插入。
        I: 在当前行首插入。
        a: 光标后插入。
        A: 当前行尾插入。
        O: 在当前行之前插入新行。
        o: 在当前行之后插入新行。
    2. 修改 c(change) 为主:
        r: 替换光标所在处的字符。
        R:替换光标所到之处的字符。
        cw: 更改光标所在处的字到字尾处。
        c#w: c3w 修改3个字符。
        C:修改到行尾。
        ci':修改配对标点符号中的文本内容。
        di':删除配对标点符号中的文本内容。
        yi':复制配对标点符号中的文本内容。
        vi':选中配对标点符号中的文本内容。
        s:替换当前一个光标所处字符。
        #S:删除 # 行,并以新文本代替。
    3. 删除 d(delete) 为主:
        D:删除到行尾。
        X: 每按一次,删除光标所在位置的前面一个字符。
        x: 每按一次,删除光标所在位置的后面一个字符。
        #x: 删除光标所在位置后面6个字符。
        d^: 删至行首。
        d$: 删至行尾。
        dd:(剪切)删除光标所在行。        
        dw: 删除一个单词/光标之后的单词剩余部分。
        d4w: 删除4个word。
        #dd: 从光标所在行开始删除#行。
        daB: 删除{}及其内的内容。
        diB: 删除{}中的内容。
        n1,n2 d:将n1,n2行之间的内容删除。
    4. 查找:
        /: 输入关键字,发现不是要找的,直接在按n,向后查找直到找到为止。
        ?: 输入关键字,发现不是要找的,直接在按n,向前查找直到找到为止。
        *: 在当前页向后查找同一字。
        #: 在当前页向前查找同一字。
    5. 复制 y(yank)为主:
        yw: 将光标所在之处到字尾的字符复制到缓冲区中。
        #yw: 复制#个字到缓冲区。
        Y:相当于yy, 复制整行。
        #yy:表示复制从光标所在的该行往下数#行文字。
        p: 粘贴。所有与y相关的操作必用p来结合粘贴。
        n1,n2 co n3:复制第n1行到第n2行之间的内容到第n3行后面。
    6. 大小写转换:
        gUU: 将当前行的字母改为大写。
        guu: 将当前行的字母改为小写。
        gUw: 将当前光标下的单词改为大写。
        guw: 将当前光标下的单词改为小写。
        a. 整篇大写:
        ggguG
        gg: 光标到文件第一个字符。
        gu: 把选择范围全部小写。
        G: 到文件结束。
        b. 整篇小写:gggUG
    7.  其它:
        J:当前行和下一行合并成一行。
    8.  移动:
        n1,n2 m n3:将n1行到n2行之间的内容移至n3行下。

五.退出:
     1. w filename: 保存正在编辑的文件filename
     2. wq filename: 保存后退出正在编辑的文件filename
     3. q:退出不保存。

六.窗口操作:
     1. ctrl+w p: 在两个分割窗口之间来回切换。
     2. ctrl+w j: 跳到下面的分割窗
     3. ctrl+w h: 跳到左边的分割窗。
     4. ctrl+w k: 跳到上面的分割窗。
     5. ctrl+w l: 跳到右边的分割窗。
posted @ 2011-12-28 10:11 Jikey 阅读(41) 评论(0) 编辑

From:http://www.setlt.net/archives/1463

原文:

 

具体方法如下:
 
1.在运行里面输入 redegit ,地球人都知道,这是打开windows的注册表。
 
2.依次打开HKEY_CLASSES_ROOT/*/shell,有点点击shell,新建项,输入项的名字,这是要在右键里显示的,建议输入Edit with Gvim.
 
3.右键点击刚建的 Edit With Gvim 项,再新建项,名字为 command , 修改其值为 C:\Program Files\Vim\vim73\gvim.exe "%1"

修改为:

d:\Program Files\vim73\gvim.exe  -p --remote-tab-silent  "%1"



 

posted @ 2011-12-28 09:25 Jikey 阅读(43) 评论(0) 编辑

接着上次的未完的部分。

接下是对滚轮的支持。

滚轮大概可以分为这么两类:

1. Firefox

Firefox 需要添加 'DOMMouseScroll' 事件支持,并取值是 使用detail 为正负30。

2. IE,Opera,Safari,Chrome

而这四类,则直接在 window.onmousewheel = document.onmousewheel = $(dom).onmousewheel = fn

取值是: 正负120,

虽然这两个取值是不一样的,但含义是一样的,正为向上,负为向下。

所以:

mousewheel: function(fun){
    return this.each(function(){
        var that = this;
            that.delta = 0; //滚动方向
        
        if($.browser.msie || $.browser.safari){ //IE Safari 
            that.onmousewheel = function(){
                that.delta = event.wheelDelta; // IE,Opera,Safari,Chrome 使用wheelDelta 只取 +-120
                event.returnValue = false;
                fun && fun.call(that); //    
            }
        } else { //Firefox
            that.addEventListener('DOMMouseScroll', function(e){
                that.delta = e.detail > 0 ? -1 : 1; // Firefox 使用 detail 只取 +-3
                e.preventDefault();
                fun && fun.call(that);
            }, false);
        }
    });
    
}

然后根据,上面总结的特性,添加代码:

$(that).mousewheel(function(){
    if(this.delta > 0){ //如果大于零,则向上,反之向下。
        currentTop -= 15;
    } else {
        currentTop += 15;
    }
    setScrollTop();
});

然后,添加对上下按钮的支持:

View Code
//向上按钮绑定事件
jKBarTop.bind('mousedown', function(e){
    that.setBarTop('up');
    
    $(document).mouseup(function(){
        $(document).unbind();
        clearTimeout(scrollTopTimer);
        scrollTopSpeed = 0;
    });
});

//向下按钮绑定事件
jKBarBot.bind('mousedown', function(e){
    that.setBarTop('bot');
    
    $(document).mouseup(function(){
        $(document).unbind();
        clearTimeout(scrollTopTimer);
        scrollTopSpeed = 0;
    });
});

//按钮设置高度方法
that.setBarTop = function(scrollDir){
    if(scrollDir == 'up'){
        currentTop -= 15;
    } else {
        currentTop += 15;
    }
    setScrollTop();
    
    scrollTopSpeed += 2;
    var t = 500 - scrollTopSpeed * 50;
    t <=0 && (t = 0);
    
    scrollTopTimer = setTimeout(function(){
        that.setBarTop(scrollDir);
    }, t);
}

基本代码块就这么多,然后是添加风格修改,

由于css属性选择器覆盖的特性,父类可以覆盖子类的权重。所以提供其它两种风格:

/* 简单 */
.jkscroll-wrap .jkscroll-simple
{width:12px;background:#f2f2f2;border-left:1px solid #dadada;}
.jkscroll-wrap .jkscroll-simple .jkscroll-bar-top,.jkscroll-wrap .jkscroll-simple .jkscroll-bar-bot
{display:none;}
.jkscroll-wrap .jkscroll-simple .jkscroll-bar-mid
{top:0;right:-2px;background:#c0c0c0;border:none 0;}
.jkscroll-wrap .jkscroll-simple .hover
{background:#909090;}
/* blue */
.jkscroll-wrap .jkscroll-gray
{background:url(http://app.soche8.com/show/jscoll/s_bg.gif) repeat-y right 0 #edf7fa;}
.jkscroll-wrap .jkscroll-gray .jkscroll-bar-top,.jkscroll-wrap .jkscroll-gray .jkscroll-bar-bot
{background:url(http://app.soche8.com/show/jscoll/s_bg.gif);}
.jkscroll-wrap .jkscroll-gray .jkscroll-bar-mid
{background:url(http://app.soche8.com/show/jscoll/s_bg.gif) repeat-y -45px 0;border:1px solid #BCBCBC;}

由此,在调用时直接可以对样式进行操作,添加 .jkscroll-simple, .jkscroll-gray 两个样式,即可更换风格。

var defaults = {
    pattern: 'blue', //默认风格
};
var opts = $.extend(defaults, options);

//风格设定
if(opts.pattern == 'jkscroll-simple'){
    jkBar.addClass('jkscroll-simple');
    jkBarBtnWidth = 0;
else if(opts.pattern == 'jkscroll-gray'){
    jkBar.addClass('jkscroll-gray');
}

在调用时,提供三种风格的支持:

$('.jkscroll-wrap').jikeyScrollerBar({
    pattern: 'jkscroll-simple' //简版
    //pattern: 'jkscroll-gray' //灰色
    //pattern: 'jkscroll-blue' //蓝色
});

由于想更自动化一点,外部的包装层也使用jquery提供的方向进行动态的添加:

var jkScrollWrap = this.wrapInner('<div class="jkscroll-cont"></div>'),
    jkScrollCont = jkScrollWrap.append('<div class="jkscroll-bar"><div class="jkscroll-bar-top"></div><div class="jkscroll-bar-mid"></div><div class="jkscroll-bar-bot"></div></div>');

这样的话,只要对内容高度进行限定,外边的滚动条,从DOM结构到js控制都是通过插件来实现,这样增加了插件的灵活性。

那最终的代码如下:

posted @ 2011-12-05 16:16 Jikey 阅读(65) 评论(1) 编辑
摘要: 最近这水平越来越退步,想写个js组件,但一直担搁,退而求次之,搞个jq插件还是可以滴。没想到,想半天不得其法,没办法,只能参考一个吧。以下看客不要太认真全是抄来的。原始地址:http://app.soche8.com/show/jscoll/jscoll 的优点就不一一列举了,说一下缺点:1. 众多灵活的参数配置,在灵活的背后牺牲了傻瓜操作可控性, 让一些不懂css的程序员,不懂jq的美工,咬牙切齿,遂有重写一个的想法。2. jscoll的js代码虽然没有加密混淆,但是2字母式的变量名,让我望其却步,可维护可扩展性,无从谈起。 3. css全是内联style式的,这种虽然必杀效果的同时,也杀了阅读全文
posted @ 2011-12-02 11:44 Jikey 阅读(191) 评论(1) 编辑
摘要: li在ie与firefox的高度是不一样的,解决办法是li font-size:0;然后在将其子元素复为12px <style type="text/css">.tu_freeline_list li{text-indent:10px;font-size:0;height:30px;line-height:30px;overflow:hidden;zoom:1;}.tu_freeline_list li span{float:left;height:30px;overflow:hidden;width:155px;font-size:12px;}.tu_free阅读全文
posted @ 2011-11-13 20:37 Jikey 阅读(86) 评论(0) 编辑