>  기사  >  웹 프론트엔드  >  jQuery_jquery를 기반으로 한 원활한 스크롤 애플리케이션(단일 또는 다중 라인)

jQuery_jquery를 기반으로 한 원활한 스크롤 애플리케이션(단일 또는 다중 라인)

WBOY
WBOY원래의
2016-05-16 18:21:381122검색

핵심 jQuery 코드:

코드 복사 코드는 다음과 같습니다.

$(function() {
var _wrap=$('ul.line');//스크롤 영역 정의
var _interval=2000;//스크롤 간격 시간 정의
var _moving;//필요한 애니메이션 삭제
_wrap.hover (function(){
clearInterval(_moving);//마우스가 스크롤 영역에 있으면 스크롤 중지
}, function(){
_moving=setInterval(function (){
var _field =_wrap.find('li:first');//이 변수는 함수 시작 부분에 배치할 수 없으며 li:first 값이 변경됩니다.
var _=_field.height ();//각 스크롤 높이 가져오기(여러 줄 스크롤의 경우 이 변수를 처음에 배치할 수 없습니다. 그렇지 않으면 간격 지연이 발생합니다)
_field.animate({marginTop:-_h 'px '},600, function(){//pass 음수 여백 값을 취하고 첫 번째 행 숨기기
_field.css('marginTop',0).appendTo(_wrap);//숨긴 후 여백 값 설정 행의 0으로 설정하고 끝까지 삽입하여 원활한 스크롤링
})
},_interval)//스크롤 간격은 _interval에 따라 다릅니다.
}).trigger('mouseleave');// 함수가 로드되면 mouseleave가 시뮬레이션됩니다. 즉, 자동 스크롤
});
데모 코드:

<script> /******************************* * @author Mr.Think * @author blog http://mrthink.net/ * @2010.08.08 * @可自由转载及使用,但请注明版权归属 *******************************/ $(function(){ //单行应用@Mr.Think var _wrap=$('ul.line');//定义滚动区域 var _interval=2000;//定义滚动间隙时间 var _moving;//需要清除的动画 _wrap.hover(function(){ clearInterval(_moving);//当鼠标在滚动区域中时,停止滚动 },function(){ _moving=setInterval(function(){ var _field=_wrap.find('li:first');//此变量不可放置于函数起始处,li:first取值是变化的 var _h=_field.height();//取得每次滚动高度 _field.animate({marginTop:-_h+'px'},600,function(){//通过取负margin值,隐藏第一行 _field.css('marginTop',0).appendTo(_wrap);//隐藏后,将该行的margin值置零,并插入到最后,实现无缝滚动 }) },_interval)//滚动间隔时间取决于_interval }).trigger('mouseleave');//函数载入时,模拟执行mouseleave,即自动滚动 }); $(function(){ //多行应用@Mr.Think var _wrap=$('ul.mulitline');//定义滚动区域 var _interval=3000;//定义滚动间隙时间 var _moving;//需要清除的动画 _wrap.hover(function(){ clearInterval(_moving);//当鼠标在滚动区域中时,停止滚动 },function(){ _moving=setInterval(function(){ var _field=_wrap.find('li:first');//此变量不可放置于函数起始处,li:first取值是变化的 var _h=_field.height();//取得每次滚动高度 _field.animate({marginTop:-_h+'px'},600,function(){//通过取负margin值,隐藏第一行 _field.css('marginTop',0).appendTo(_wrap);//隐藏后,将该行的margin值置零,并插入到最后,实现无缝滚动 }) },_interval)//滚动间隔时间取决于_interval }).trigger('mouseleave');//函数载入时,模拟执行mouseleave,即自动滚动 }); </script> [Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다. ]
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.