【问题标题】:need suggestions on jquery plugin for rounded corners需要关于圆角的jquery插件的建议
【发布时间】:2009-06-20 01:11:10
【问题描述】:

我想学习jquery插件,所以我决定尝试做一个简单的圆角框。我知道已经有一些圆角插件,但这对我来说更像是一种学习练习,而不是工作要求。

我取自here 的圆角。我喜欢这个示例,因为它不使用图像,可以轻松更改框的颜色。

我想我在思考最好的方法时遇到了麻烦。我有一个非常粗糙的样本,它有点工作,但感觉不对。让我束手无策的部分是在内容区域周围构建圆角。现在它需要“内容”框并附加它周围的角。有什么更好的方法来做到这一点?

这是制作盒子的调用 - $('#content').roundbox();

如果这些信息还不够,请告诉我。

//
(function($)
{
jQuery.fn.roundbox = function(options)
{

    var opts = $.extend({}, $.fn.roundbox.defaults, options);

    var outer = $("<div>");
    var topBorder = $("<b class='xtop'><b class='xb1'></b><b class='xb2'></b><b class='xb3'></b><b class='xb4'></b></b>");
    var bottomBorder = $("<b class='xbottom'><b class='xb4'></b><b class='xb3'></b><b class='xb2'></b><b class='xb1'></b></b>");
    var title = $("<h1>Select Funding</h1>");
    var separator = $("<div></div>");

    $(this).append(title);
    $(this).append(separator);

    var firstElement = $(this).children()[0];
    if (firstElement != null)
    {
        title.insertBefore(firstElement);
        separator.insertBefore(firstElement);
    }

    outer.append(topBorder);
    outer.append($(this));
    outer.append(bottomBorder);

    $("#fundingAdminContainer").append(outer);


    //Add classes
    outer.addClass(opts.outerClass); //outer container
    $(this).addClass(opts.contentClass); //inner content
    title.addClass(opts.titleClass); //roundbox title
    separator.addClass(opts.lineClass); //line below title
};

$.fn.roundbox.defaults =
{
    outerClass: 'roundbox',
    contentClass: 'roundboxContent',
    titleClass: 'roundboxTitle',
    lineClass: 'roundboxLine'
};


})(jQuery);


//CSS
.roundbox
{
float:left;
width:400px;
margin-right:20px;
}

.roundboxContent
{
display:block;
background:#ffffff;
border:0 solid #D4E2FE;
border-width:0 1px;
height:180px;
padding:10px;
}

.roundboxLine
{
background: url(../images/fundingAdmin_line.gif);
background-repeat:no-repeat;
height:5px;
}

.roundboxTitle
{
font-size:1.3em; color:#17A2D3;
}

.xtop, .xbottom {display:block; background:transparent; font-size:1px;}
.xb1, .xb2, .xb3, .xb4 {display:block; overflow:hidden;}
.xb1, .xb2, .xb3 {height:1px;}
.xb2, .xb3, .xb4 {background:#ffffff; border-left:1px solid #D4E2FE; border-right:1px solid #D4E2FE;}
.xb1 {margin:0 5px; background:#D4E2FE;}
.xb2 {margin:0 3px; border-width:0 2px;}
.xb3 {margin:0 2px;}
.xb4 {height:2px; margin:0 1px;}

盒子的最终结构应该是:

<div id="fundingAdminContainer"><!-- Not part of rounded box, just serves as a container. -->
    <div class="roundbox">
        <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"></b></b>
        <div id="content" class="roundboxContent">
            <h1 class="roundboxTitle">Title</h1>
            <div class="roundboxLine"></div>
                //CONTENT
        </div>
        <b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b><b class="xb1"></b></b>
    </div>
</div>

【问题讨论】:

  • 顺便说一句,很酷的想法。我想我要开始使用这个了...

标签: jquery css jquery-plugins


【解决方案1】:

http://www.curvycorners.net/ http://www.curvycorners.net/

javascript 库,不是 jQuery 插件,但它似乎可以工作:D

【讨论】:

    【解决方案2】:

    这里是一个替代的 jquery 弯角插件

    http://labs.parkerfox.co.uk/cornerz/

    【讨论】:

      【解决方案3】:

      这个很好:

      http://jrc.rctonline.nl/

      它使用 Canvas,因此非常灵活。

      【讨论】:

        【解决方案4】:

        我觉得你的做法很好。不过,我不会硬编码 Funding 的东西。

        您可以将标题和分隔符设置为函数的选项,而不是附加到#fundingAdminContainer,您可以这样做

        outer.insertBefore($(this));
        

        在将 $(this) 附加到外部之前。

        编辑:这个答案现在已经很老了,我会说已经过时了。大多数浏览器现在通过 CSS 边框半径属性或至少一个特定于浏览器的替代方案来支持圆角。我还要说,在大多数情况下,为不支持 CSS 的旧浏览器(当然这是意见)填充圆角所需的额外 js 甚至是不值得的。因此,如果我要给出完整的答案,我会说只需使用 this 并按照它告诉你的去做:)。

        但是如果你真的想要你的圆角在

        唯一的问题是 htc 文件也已过时,应使用this 之类的内容进行修改以检查边界半径是否存在。 HTC只是JS。这将使 IE9 不必进行 JS DOM 操作。

        【讨论】:

          【解决方案5】:

          这个 jQuery Corner 插件 可能会有帮助。易于使用且令人惊叹。

          http://jquery.malsup.com/corner/

          用法

          $('#myDiv').corner();
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-02-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多