分享好友 教程首页 教程搜索 频道列表

jquery实现tag平均宽度

2017-07-27 10:5211050
+关注28
核心提示:jquery实现tag平均宽度

jquery实现tag平均宽度

jquery

function widget_tags(tt) {
    var $it = tt.find($('li'));
    var mw = tt.width();
    var index = 0;
    var t = 0;
    $it.each(function() {
        var $c = $(this);
        var ow = $c.outerWidth(true);
        var bw = ow - $c.outerWidth();
        t += ow;
        if (t > mw) {
            var $pt = $c.prev();
            var p = mw - (t - ow);
            aw($pt, p + bw);
            t = ow;
        }
        if ($c.is(':last-child')) {
            var p = mw - t;
            aw($c, p + bw);
        }
    });
    function aw($pt, adw) {
        var r = ranges(index, $pt.index());
        var d = Math.floor(adw / r.length);
        var e = adw % r.length;
        for (var i in r) {
            var $im = $it.eq(r[i]);
            $im.width($im.width() + d);
        }
        $pt.width($pt.width() + e);
        $pt.css('margin-right', 0);
        index = $pt.index() + 1;
    };
    function ranges(l, h, s) {
        var mx = [];
        var i, e, p;
        var wr = s || 1;
        var cs = false;
        if (!isNaN(l) && !isNaN(h)) {
            i = l;
            e = h
        } else if (isNaN(l) && isNaN(h)) {
            cs = true;
            i = l.charCodeAt(0);
            e = h.charCodeAt(0)
        } else {
            i = (isNaN(l) ? 0 : l);
            e = (isNaN(h) ? 0 : h)
        }
        p = ((i > e) ? false: true);
        if (p) {
            while (i <= e) {
                var cc = String.fromCharCode(i);
                mx.push(((cs) ? cc: i));
                i += wr
            }
        } else {
            while (i >= e) {
                var cc = String.fromCharCode(i);
                mx.push(((cs) ? cc: i));
                i -= wr
            }
        }
        return mx;
    }
};

使用

html

<ul class="amz-widget-tags am-cf">
    <li class="am-badge"><a href="#">jquery</a></li>
    <li class="am-badge"><a href="#">标签</a></li>
    <li class="am-badge"><a href="#">分页</a></li>
    <li class="am-badge"><a href="#">tags</a></li>
    <li class="am-badge"><a href="#">编辑器</a></li>
    <li class="am-badge"><a href="#">destoon</a></li>
    <li class="am-badge"><a href="#">poscms</a></li>
    <li class="am-badge"><a href="#">图片</a></li>
    <li class="am-badge"><a href="#">百度</a></li>
    <li class="am-badge"><a href="#">调用</a></li>
</ul>
jquery

$(function(){
    widget_tags($('.amz-widget-tags'));
    // 窗口大小改变是重新执行,自适应页面适用。
    $(window).resize(function(){ 
        if($(".amz-sidebar").css('display')!='none'){ //判断ul的上级元素是否显示,改成自己的就好
            $('.amz-widget-tags').find('li').attr('style','');
            widget_tags($('.amz-widget-tags'));
        }
    });
});
css

.amz-widget-tags li { float: left;margin-top: 5px;margin-right: 6px;}
.amz-widget-tags a {color: #fff;font-size: 1.5rem;font-weight: normal;}
.am-badge{display:inline-block;min-width:10px;padding:0.25em 0.625em;font-size:1.2rem;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999999;border-radius:0;}

tag.png

随机颜色在后面会分享

本文标签: #jquery #tags #标签
整理员:小黑
免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
生成海报
您可能在找更多

在destoon9.0的中e.indexOf is not a function报错问题

    用代码测试

小黑 JavaScript教程2023-07-06

jquery拖拽排序,针对后台列表table进行拖拽排序(测试有用)

    现在很多后台列表为了方便均使用拖拽排序的功能,对列表进行随意的排序。话不多说 ,我在网上找了一些demo,经过对比,现在把方便实用的一个demo列出来,基于jqueryUI.js先上html代码,很简单:

网络转载 JavaScript教程2023-03-16

jquery-ui.min.js 拖拽参数跟事件

    所有的事件回调函数都有两个参数:event和ui,浏览器自有event对象,和经过封装的ui对象

网络转载 JavaScript教程2023-03-15

jQuery-ui插件sortable实现自由拖动排序

    自行用代码测试

网络转载 JavaScript教程2023-03-15

怎么使用jquery改变div高度

    用代码测试

网络转载 JavaScript教程2022-05-17

下一篇
我来说两句
抢沙发