Javascript 选框不显示所有文本-在不同点截断
我的字幕似乎没有显示我放在div中的所有文本。它总是在某一点被切断。你知道我怎样才能让它显示所有的文字吗 这是我到目前为止的代码(演示在) HTML JSJavascript 选框不显示所有文本-在不同点截断,javascript,jquery,css,marquee,Javascript,Jquery,Css,Marquee,我的字幕似乎没有显示我放在div中的所有文本。它总是在某一点被切断。你知道我怎样才能让它显示所有的文字吗 这是我到目前为止的代码(演示在) HTML JS $(函数(){ var marquee=$(“#marquee”); css({“溢出”:“隐藏”,“宽度”:“100%”); //用span换行“我的文本”(即不喜欢divs内联块) 大屏幕包装器(“”); css({“宽度”:“50%”,“显示”:“内联块”,“文本对齐”:“中心”}); marquee.append(marquee.fi
$(函数(){
var marquee=$(“#marquee”);
css({“溢出”:“隐藏”,“宽度”:“100%”);
//用span换行“我的文本”(即不喜欢divs内联块)
大屏幕包装器(“”);
css({“宽度”:“50%”,“显示”:“内联块”,“文本对齐”:“中心”});
marquee.append(marquee.find(“span”).clone();//现在有两个带有“我的文本”的span
大屏幕包装器(“”);
marquee.find(“div”).css(“宽度”、“200%”);
var reset=函数(){
$(this.css(“左边距”、“0%”);
动画({“左边距”:“-100%”,10000,“线性”,重置);
};
重置调用(选框查找(“div”);
});
您的原始代码假定100%
宽度
(即200%
宽度
内的50%
)将容纳整个文本
我对它进行了修改,以实际计算字符串所需的宽度,然后使用它来制作动画
检查此修改版本:
i、 e:
工作小提琴:
首先要解决文本在某一点被剪切的问题,请将空白:nowrap
应用于div
:
marquee.wrapInner("<div>");
marquee.find("div").css({
"width": "100%",
"white-space": "nowrap"
});
这是行不通的,因为您所指的100%
不是div
本身或其内容的宽度,而是其容器的宽度。您需要这样做:
$(this).animate({ -$(this).find('span').width() + 'px' }, 10000, 'linear', reset);
这将移动
div
与其子跨距之一的像素长度正好一致如果更改div字幕的宽度,则问题将得到解决
css({“溢出”:“隐藏”,“宽度”:“100%”)
在上面的代码中,如果我们将宽度100%更改为308%,那么它在FF、Chrome(最新版本)中可以正常工作,如果我们将宽度100%更改为325%,那么它在IE中也可以正常工作。
用div将maqrquee标记中的文本包装起来,并给它一个类名。最后,对该类使用填充。填充值取决于文本的字体大小
而不是使用此样式
div.maqquee_text{padding:10px;}
这对我来说很有用。以下是一个基于techfoobar答案的答案,它不会为小字符串创建重复的跨度,并且无论文本长度如何,滚动速度都更均匀:
$(函数(){
var marquee=$(“#marquee”);
大屏幕包装器(“”);
var w=选框.find(“span”).width();
var w2=$(document.body).width();
if(w
#字幕{
颜色:#000;
高度:16px;
垫底:5px;
}
他们来了
在chrome(最新版本)中效果很好。它可以工作-但是文本在某个点被截断。很抱歉,我无法使链接中的代码工作。它在我的jsp中呈现为普通文本。我是否遗漏了什么?先谢谢你
...
marquee.find("span").css({ ... });
// get the actual used width
var w = marquee.find("span").width();
...
var reset = function() {
$(this).css("margin-left", "0");
// use calculated width for animation.
$(this).animate({ "margin-left": "-"+w+"px" }, 40000, 'linear', reset);
};
marquee.wrapInner("<div>");
marquee.find("div").css({
"width": "100%",
"white-space": "nowrap"
});
$(this).animate({ "margin-left": "-100%" }, 10000, 'linear', reset);
$(this).animate({ -$(this).find('span').width() + 'px' }, 10000, 'linear', reset);
<marquee behavior="alternate" direction="right">Here is marquee text</marquee>
<marquee behavior="alternate" direction="right"><div class="maqquee_text">Here is marquee text</div></marquee>
div.maqquee_text{padding:10px;}