Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数在跨度内动态缩短文本_Javascript_Html_Css - Fatal编程技术网

Javascript 函数在跨度内动态缩短文本

Javascript 函数在跨度内动态缩短文本,javascript,html,css,Javascript,Html,Css,我有一个这样的跨度 css: .menu {border:1px solid #000; width:200px; display:block; padding:3px;} html: <span class="menu">This is an example text</span> <span class="menu">Another text example</span> css: .菜单{边框:1px实心#000;宽度:200px;显示:

我有一个这样的跨度

css:
.menu {border:1px solid #000; width:200px; display:block; padding:3px;}

html:
<span class="menu">This is an example text</span>
<span class="menu">Another text example</span>
css:
.菜单{边框:1px实心#000;宽度:200px;显示:块;填充:3px;}
html:
这是一个示例文本
另一个文本示例
它打印了这个

我已经将“跨度宽度”设置为200px,因为文本比200px长,所以跨度的大小调整为200px以上

我需要一个javascript或jQuery函数,这样它就可以打印类似这样的内容。它还将在文本末尾添加“…”


css样式也是可以接受的…

我认为css属性就是您想要的。不过,浏览器支持并不可怕。但是在不支持的情况下,可能只剪切没有省略号的文本就可以了?

如果您不需要使用省略号(…),跨浏览器纯CSS方法是:

  • 为容器设置固定的,并将
    overflow
    CSS属性设置为
    hidden
  • 创建遮罩容器右端一小部分的垫片/覆盖层。为该垫片提供一个背景图像,该图像是从透明到容器背景色的渐变
  • 过长的文本将被剪裁
  • 带有渐变的垫片将为剪裁的文本提供良好的淡出效果

  • 试试这个,伙计

    无标题
    .隐藏{
    显示:无;
    }
    span.菜单{边框:1px实心#000;宽度:200px;显示:块;填充:3px;}
    $(函数(){
    var$element=$('span');//要隐藏文本的一个或多个元素
    var$limit=26;//要显示的字符数
    var$str=$element.html();//获取文本
    var$strtemp=$str.substr(0,$limit);//获取字符串的可见部分
    $str=$strtemp+'…'+$str.substr($limit,$str.length)+';//重新组合字符串,使span标记缠绕在其隐藏部分
    $element.html($str);//将字符串写入DOM
    })
    
    Loren Ipsum Loren Ipsum Loren Ipsum Loren Ipsum Loren Ipsum Loren Ipsum Loren Ipsum Loren Ipsum Loren Ipsum Loren Ipsum Loren Ipsum

    您也可以使用任何服务器端语言来完成。只是指出而已。
    <title>untitled</title>
    <style type="text/css" media="screen">
        .hide{
                display: none;
        }
        span.menu{border:1px solid #000; width:200px; display:block; padding:3px;}
    </style>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
    <script type="text/javascript" charset="utf-8">
        $(function(){
                var $element = $('span');             // The element or elements with the text to hide
                var $limit = 26;                // The number of characters to show
                var $str = $element.html();        // Getting the text
                var $strtemp = $str.substr(0,$limit);   // Get the visible part of the string
                $str = $strtemp + ' ...<span class="hide">' + $str.substr($limit,$str.length) + '</span>';  // Recompose the string with the span tag wrapped around the hidden part of it
                $element.html($str);               // Write the string to the DOM 
        })
    </script>