如何进/出水平/垂直滚动动画?

时间:2013-08-23 05:56:43

标签: javascript jquery

这是我目前的代码。这会加载所有评论,并在视频播放时间内显示<p>内的评论。

样式newsticker是边框线的正方形。

我想在其中显示评论,然后滑入,然后滑出。 就像这里http://spreadthesource.com/sandbox/featurify/

一样

我怎样才能使它成为可能?
关键是使用onPlay媒体每秒刷新<p>的内容 所以加载的评论必须滑入,并在那里停留5秒钟,然后滑出去消失。

我用jsfiddle制作了DEMO

任何人都可以告诉我代码。

的Javascript

jQuery(document).ready(function () {

    $('#video').on('timeupdate',function(e){
        showComments(this.currentTime);
    });

}); 
var comments = [{'time':'10','message':'hello! 10 secs has past'},{'time':'10','message':'hello! 10-2 secs has past'},{'time':'5','message':'hello! 5 secs has past'},{'time':'30','message':'hello! 30 secs has past'}];


function showComments(time){
    var comments = findComments(time);
    $.each(comments,function(i,comment){
        $('p#newsticker').text(comment.message);

        // Show for 5 seconds, then hide the `p` element.
        $('p#newsticker').show().delay(2000).fadeOut();
    });
}

function findComments(time){
    return $.grep(comments, function(item){
      return item.time == time.toFixed();
    });
}

HTML

<body>
    <div class="newsticker"> 
        <p id="newsticker"></p>
    </div>
    <br />
    <br />
    <video id="video" controls="controls" autoplay="autoplay" name="media"><source src="http://media.w3.org/2010/05/sintel/trailer.mp4" type="video/mp4"></video>
</body>

CSS

div.newsticker{
    border:1px solid #666666;
    width:400px;
    height:50px;
}

1 个答案:

答案 0 :(得分:1)

jQuery(document).ready(function () {
    var counter=5;
    $('#video').on('timeupdate',function(e){
        if(this.currentTime > counter){
            showComments(this.currentTime);
            counter+=5; // for updating the comment every after 5 seconds.
        }    
    });

}); 
var comments = [{'time':'10','message':'hello! 10 secs has past'},{'time':'15','message':'hello! 15 secs has past'},{'time':'5','message':'hello! 5 secs has past'},{'time':'20','message':'hello! 20 secs has past'}];


function showComments(time){
    var comments = findComments(time);
    $.each(comments,function(i,comment){
        $('.newsticker p').animate({"marginLeft":"400px","opacity":".0"}, 600).fadeOut(100);
        $('.newsticker').append("<p style='margin-left:400px;opacity:0'>"+comment.message+"</p>");
        $('.newsticker p').animate({"marginLeft":"0px","opacity":"1"}, 600);
    });
}

function findComments(time){
    return $.grep(comments, function(item){
      return item.time == time.toFixed();
    });
}

我已经更改了你的代码。希望这对你有用。你可以从这里看到小提琴。 http://jsfiddle.net/Aveendra/m5tt9/