从右到左滚动文字效果

时间:2011-05-13 07:44:11

标签: jquery css scroll jquery-animate right-to-left

我正在尝试从右向左滚动文本(实际列出元素)。

这是HTML代码

<div id="slider-txt">
    <ul>
        <li class="islide">text 1</li>
        <li class="islide">text 2</li>
    </ul>
</div>

我的CSS

#slider-txt
{
position:relative;
width: 590px;
}

#slider-txt ul
{
list-style-type: none;
position: absolute;
margin: 0px;
padding: 0px;
}

#slider-txt ul li
{
text-align: right;
}

和jQuery

var box = $('#slider-txt');
    if (box.length == 0) {
        return;
    }
var ul = box.find('ul');
    var li = $('#slider-txt').find('li');

    var liWidth = box.width();
    var ulWidth = liWidth * li.length;
    li.css('width', liWidth);
    ul.css('width', ulWidth);
    li.css('display', 'inline-block');
var liElement = 0;

    function slideNxt() {
        liElement++;
        if (liElement == li.length) {
            liElement = 0;
        }
    var curLeftPos = ul.css('left').split('px')[0];
    var newLeftPos = -(liElement * liWidth);
    ul.animate({ left: newOffset + 'px' }, { duration: 'slow', easing: 'swing' });
}
setInterval(slideNxt, 2000);

上面的代码在循环中从右到左摆动列表项。列表项上设置的内联块属性似乎没有按预期工作(列表项目显示在另一个下面)。此外,如果列表项开箱即用(div#slider-txt)宽度,我希望列表项被隐藏。

你能帮我解决这些问题吗?感谢...

2 个答案:

答案 0 :(得分:1)

需要编辑CSS ...我们将获得滚动效果。

#slider-txt
{
   width: 590px;
   height: 20px;
   display:block;
   overflow:hidden; /* to hide the text */
   position: relative;
}

#slider-txt ul
{
   list-style-type: none;
   margin: 0px;
   padding: 0px;
   position: absolute;
}

#slider-txt ul li
{
   text-align: center;
   float: left; /* brings the list items in one line */
}

答案 1 :(得分:0)

你真的不想使用marque,它不是非常直观的用户。相反,我建议你有一个用CSS3编写的巨型旋转棒棒糖!

小提琴: http://jsfiddle.net/garreh/AA6KL

我无法抗拒。