一旦它到达屏幕中间而不是屏幕的任何位置,如何使用Javascript播放GIF

我试图找到一个脚本,当它们滚动时到达屏幕中间时,它们将在页面上播放我的gif。目前,我有此脚本,它可以在进入屏幕视图时立即播放gif。但这并没有给用户足够的时间来播放正在播放的动画。 我对此表示感谢。 艾米

nginx.ingress.kubernetes.io/server-snippet: |
      location ~ /preview {
         rewrite /preview https://test.app.example.com$uri permanent;
      }
LoongWalker 回答:一旦它到达屏幕中间而不是屏幕的任何位置,如何使用Javascript播放GIF

使用github.com/buzzfeed/libgif-js检查此示例,

注意:全屏运行

var sup = [];
	var playing = null;
	$(function(){
		var i = 0;
		$('.gif').each(function(){
		sup[i] = new SuperGif({ gif:this,progressbar_height: 0,auto_play: false,} );
		sup[i].load();
		i++;
		});
		
var findMiddleElement = (function(docElm){
    var viewportHeight = docElm.clientHeight,elements = $('.image-div'); 

    return function(e){
        var middleElement;
        if( e && e.type == 'resize' )
            viewportHeight = docElm.clientHeight;

        elements.each(function(){
            var pos = this.getBoundingClientRect().top;
            // if an element is more or less in the middle of the viewport
            if( pos > viewportHeight/2.5 && pos < viewportHeight/1.5 ){
                middleElement = this;
                return false; // stop iteration 
            }
        });

       if(typeof(middleElement)!='undefined'){
       	 var index = $(middleElement).index();
       	 //console.log(index);
       	 if(playing!=index){
       	 	
       	 	if(typeof(sup[index])!="undefined"){
       	 		if(typeof(sup[playing])!='undefined'){
       	 	  	 		sup[playing].pause();		
       	 		}
     
       	 		playing = index;
       	 		sup[playing].play();
       	 	}
       	 }
       }
    }
})(document.documentElement);

$(window).on('scroll resize',findMiddleElement);
	});
			.image-div{
				margin: 25px;
			}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://solarisedesign.co.uk/_themes/solarise/js/libgif.js"></script>
<ul>		
<li class="image-div">		
  <img src='https://media.giphy.com/media/Byana3FscAMGQ/giphy.gif' class='gif' />
</li>
<li class="image-div">
  <img src='https://media.giphy.com/media/Byana3FscAMGQ/giphy.gif' class='gif' />
</li>
<li class="image-div">
  <img src='https://media.giphy.com/media/Byana3FscAMGQ/giphy.gif' class='gif' />
 </li> 
 <li class="image-div">
  <img src='https://media.giphy.com/media/Byana3FscAMGQ/giphy.gif' class='gif' />
 </li> 
 <li class="image-div">
  <img src='https://media.giphy.com/media/Byana3FscAMGQ/giphy.gif' class='gif' />
 </li> 
</ul> 

本文链接:https://www.f2er.com/3167926.html

大家都在问