我见过Giva labs'marquee scroller和SerialScroll,但无法弄清楚如何让它在div中左右滚动文本。我猜我需要一些其他类型的扩展。
基本上,我有一个宽度为100px的div和跨越200px的文本,而不是像一个选框一样滚动它,我想向左滚动直到它到达终点然后将其向右移回。所以,左右滚动。
建议?
答案 0 :(得分:14)
This页面左右滚动字幕 - 可能值checking out。
答案 1 :(得分:6)
我决定采用Stephen Delano's answer并实际让它发挥作用。我也对它做了改进。
我的脚本在用鼠标悬停时激活。
这里只是脚本:
$('.scroll-box').mouseenter(function () {
$(this).stop();
var boxWidth = $(this).width();
var textWidth = $('.scroll-text', $(this)).width();
if (textWidth > boxWidth) {
var animSpeed = textWidth * 10;
$(this).animate({
scrollLeft: (textWidth - boxWidth)
}, animSpeed, function () {
$(this).animate({
scrollLeft: 0
}, animSpeed, function () {
$(this).trigger('mouseenter');
});
});
}
}).mouseleave(function () {
var animSpeed = $(this).scrollLeft() * 10;
$(this).stop().animate({
scrollLeft: 0
}, animSpeed);
});
如果您想让它自动滚动而不是等待任何鼠标事件you could do this。
如果您想要更改滚动的速度,则只需将10
更改为其他数字即可。数字越大,滚动越慢。
答案 2 :(得分:4)
我昨天遇到这篇文章,当时我正在寻找能做同样事情的事情。虽然我采取了不同的路线,但我想出了如何实现这一目标。
首先,你需要你的标记。我们将在此示例中使用DIV标记:
<div class="scroll-box">
<div class="scroll-text">This is the text that is too long to fit in the box</div>
</div>
接下来,我们需要设计样式:
.scroll-box {
width: 100px;
height: 1.2em;
overflow: hidden;
position: relative;
}
.scroll-text {
position: absolute;
white-space: nowrap;
}
现在我们需要一些jQUery:
$(document).ready(function() {
$('.scroll-box').bind('marquee', function() {
var boxWidth = $(this).width;
var textWidth = $('.scroll-text', $(this)).width();
if (textWidth > boxWidth) {
var animSpeed = textWidth - boxWidth * 20; // 50 pix per sec
$(this)
.animate({scrollLeft: textWidth - scrollWidth}, animSpeed)
.animate({scrollLeft: 0}, animSpeed, function() {
$(this).trigger(marquee);
});
}
}).trigger('marquee');
});
你有它!一个漂亮的小侧面选框。
免责声明:我甚至没有对此进行测试,其中大部分内容都不在我的脑海中,但如果存在任何原因,您应该能够解决这些问题,因为基本概念已经存在。
答案 3 :(得分:1)
col3LongText: function()
{
var $flightsPanel = $('#flightsPanel');
$('.scrollBox', $flightsPanel).mouseover(function()
{
var boxWidth = $(this).width();
var textWidth = $('.deal-name', $(this)).width();
if (textWidth > boxWidth)
{
var animSpeed = textWidth - boxWidth; // 50 pix per sec
$('.deal-name', $(this)).animate({textIndent: -animSpeed}, 2000);
}
}).mouseout(function() {
$('.deal-name', $(this)).stop().css({textIndent: 0});
})
}
答案 4 :(得分:1)
您可以查看jRollingNews。 您可以显示任何RSS源或所需的任何自定义内容。使用他们的代码生成器,它使事情变得更容易,并且您有预览。
免责声明:我做到了。