Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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_Jquery_Html_Css_Marquee - Fatal编程技术网

Javascript 文本溢出时选取框文本

Javascript 文本溢出时选取框文本,javascript,jquery,html,css,marquee,Javascript,Jquery,Html,Css,Marquee,这是我的问题。假设我有3个div标签,都是100像素宽: <--- DIV WIDTH ---> Text in div 1 Text in div two, it overflows Text in div three <--- DIV WIDTH ---> 我想做的是,如果文本溢出,它会像字幕一样滚动,因此如果您稍等一下,所有文本都可以看到。但我只希望字幕显示文本是否溢出 我该怎么做 Thx,Tony$(函数(){ $(function(){ $box = $(

这是我的问题。假设我有3个div标签,都是100像素宽:

<--- DIV WIDTH --->
Text in div 1
Text in div two, it overflows
Text in div three
<--- DIV WIDTH --->
我想做的是,如果文本溢出,它会像字幕一样滚动,因此如果您稍等一下,所有文本都可以看到。但我只希望字幕显示文本是否溢出

我该怎么做

Thx,Tony

$(函数(){
$(function(){
  $box = $('div.box');
  $box.children().each(function(){
    if ($box.width() < $(this).width()) {
      $(this).wrap('<marquee>');
    }
  )};
});
$box=$('div.box'); $box.children().each(函数()){ 如果($box.width()<$(this.width()){ $(此).wrap(“”); } )}; });

将在jQuery中工作(我还没有检查它。如果您对它有任何问题,请回复)。或者,您可以在css中设置一个滚动属性。

这不会解决所描述的问题(div中的纯文本),但如果这只是一个最小的情况,您可以使用
溢出:auto
,如果溢出,它将添加一个水平滚动条


(还要注意,marquee是一个非标准的HTML标记。)

解决条件部分

JS
条件部分可以像rennat建议的那样轻松解决


您可以使用jQuery吗?如果是,则构建与兼容的html,只需调用$(element).marquee();对于动画。它比“
”标记好,因为它只使用具有正确css属性的div(避免使用非标准标记)。

为了它的价值,我不得不使用.outerWidth()而不是width()。marquee是。为什么要在这里使用jQuery,而您在这里所做的只是将一些元素包装到标记中?可以在代码中完成,不是吗?!
$(function(){
  $box = $('div.box');
  $box.children().each(function(){
    if ($box.width() < $(this).width()) {
      $(this).wrap('<marquee>');
    }
  )};
});
var el = $('your element');
if (el.get(0).scrollWidth > el.width()) {
    // Your marquee code here
}