简体   繁体   English

过渡无效(空白:nowrap->空白:正常)

[英]Transition not working (white-space: nowrap -> white-space: normal)

As I know, transition not working in my case. 据我所知,过渡不适用于我的情况。 Of course, I can add max-height and z-index (and animate it), but I need ellipsis with smooth transition. 当然,我可以添加max-height和z-index(并对其进行动画处理),但是我需要平滑过渡的省略号。

My code here: https://jsfiddle.net/57oknf1f/ My code here: https My code here: //jsfiddle.net/57oknf1f/

You can achieve this with javascript. 您可以使用javascript来实现。 I write a simple demo for you, which use .text to make a "ellipsis" effect using jQuery. 我为您编写了一个简单的演示,它使用.text使用jQuery产生“省略号”效果。

There must be some bugs in my code, you should fix them yourself. 我的代码中肯定有一些错误,您应该自己修复。 I just point out a way. 我只是指出一种方法。

 $(".tdsp+td div div").each(function() { var $dom = $(this); $dom.css({ 'white-space': "normal" }); var text = $dom.text(); var lineEndIndex; $dom.text("a"); setTimeout(function() { var lineHeight = $dom.height(); var textIndex = 1; function addText() { $dom.text(text.slice(0, textIndex)); if ($dom.height() > lineHeight) { $dom.text(text.slice(0, textIndex - 4) + "..."); lineEndIndex = textIndex; return; } textIndex++; setTimeout(addText); } addText(); }); $dom.on("mouseenter", function() { var textIndex = lineEndIndex; function addText() { $dom.text(text.slice(0, textIndex)); if (textIndex === text.length) { return; } textIndex++; setTimeout(addText); } addText(); }); $dom.on("mouseleave", function() { var textIndex = text.length; function addText() { $dom.text(text.slice(0, textIndex)); if (textIndex === lineEndIndex - 4) { $dom.text(text.slice(0, textIndex) + "..."); return; } textIndex--; setTimeout(addText); } addText(); }); }); 
 table { border: 1px solid #f7f7f7; margin-bottom: 5px; margin-top: 5px; width: 100%; table-layout: fixed; } td { border: 1px solid #f7f7f7; background: #FFF; height: 55px; max-width: 200px; text-overflow: ellipsis; white-space: nowrap; } .tdsp { overflow: hidden; } table td>div { position: relative; } table td>div div { background: #fff; white-space: nowrap; overflow: hidden; position: absolute; text-overflow: ellipsis; width: 100%; box-sizing: border-box; -webkit-box-sizing: border-box; -o-box-sizing: border-box; -moz-box-sizing: border-box; margin-top: -11px; } table td>div div:hover { white-space: normal; z-index: 1; } th { border-radius: 0; background: #000; color: #FFF; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table class="bordered centered"> <thead> <tr> <th>Test</th> <th>Test</th> </tr> </thead> <tbody> <tr> <td class="tdsp">Test</td> <td> <div> <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div> </div> </td> </tr> <tr> <td class="tdsp">Test</td> <td> <div> <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div> </div> </td> </tr> <tr> <td class="tdsp">Test</td> <td> <div> <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div> </div> </td> </tr> <tr> <td class="tdsp">Test</td> <td> <div> <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div> </div> </td> </tr> <tr> <td class="tdsp">Test</td> <td> <div> <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div> </div> </td> </tr> <tr> <td class="tdsp">Test</td> <td> <div> <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div> </div> </td> </tr> <tr> <td class="tdsp">Test</td> <td> <div> <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div> </div> </td> </tr> <tr> <td class="tdsp">Test</td> <td> <div> <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div> </div> </td> </tr> <tbody> </table> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM