天博网络

技术资讯

做网站常用的网页滚动特效

2015-08-20  09:18:45  来自:admin

    在进行网站建设过程中,经常会遇到客户想要让首页的内容能够动起来,以增加网站的动感,今天天博网小编为大家总结几种常用的网页滚动特效代码,希望可以帮助大家。


滚屏特效之基础篇: 

     将下面这段代码放入你网页的末尾(注意不能是开头,那样就看不到效果了): 

      〈SCRIPT language="JavaScript"〉

       window.scroll(0,100);

      〈/SCRIPT>

       

      如果这个网页中出现滚动条的话,那么打开时你就会发现:滚动条不像平时处于最顶端,而是距顶端有一小段的距离。这就是要实现滚屏的基础:用window对象的scroll方法改变滚动条的位置。其中的第一个参数为水平滚动条左端的位置(单位px),第二个为垂直滚动条顶端的位置(单位px)。

       

      如果我们把这两个参数有规则的动态改变,那不就能实现滚屏了吗?比如使用简单的

     FOR 循环,把下面这段代码加到网页的最后:


      〈SCRIPT language="JavaScript"〉

       for (I=1; I<=1000; I++){

        window.scroll(0,I); 

     

      //将 for 循环中的 I 的值代入scroll 方法的第二个参数中来改变垂直滚动条的位置

     

       }

      〈/SCRIPT>

       

     看到了吗?滚动条是不是在动。由于我们只需要网页的垂直滚动,因此就只改变第二个即垂直滚动条的参数,而将第一个参数设为0。


    

    滚屏特效之进阶篇:


     上面的代码虽然能够实现滚屏,但是速度好像太快了点,我可不是能够一目十行的人:)。那就们就需对上面的代码进行改进:

     

       〈SCRIPT language="JavaScript"〉

       var timer;

       var y = 0;

      

       //定义一个滚屏的函数

      

       function scrollwindow(){

        window.scroll(0,y);

        y++;

        timer=setTimeout("scrollwindow()", 30); 

      

       //每隔30毫秒执行一次 scrollwindow()函数,以此来实现参数 y 的递增

      

       }

       〈/SCRIPT>

       

     这段代码就可以放到网页的任何位置了,不过建议放在和 之间。再用 替换 。这次是不是慢多了呢?而且你可以将timer=setTimeout("scrollwindow()", 30) 中的30换成其它数字,就能改变速度了,数字越小速度越快。


    滚屏特效之高级篇:


     速度我们是能够控制了,而且无论多长的网页都能够从头到尾“将滚屏进行到底”。但是您发觉没有?就是一进入网页就立即开始滚动,这样就可能错过网页项端的精彩内容哦。还有就是滚屏中或滚屏后我们都不能改变滚动条的位置,这就不像在看网页了,到有点像看电视。我们还应当设计滚动:


       〈SCRIPT language="JavaScript"〉

       var currentpos,timer; 

      

       //开始滚动函数,执行后网页开始滚动

      

       function initialize(){ 

       timer = setTimeout("scrollwindow()",30);

      

       //每隔30毫秒执行一次 scrollwindow() 函数

      

       }

      

       //停止滚动函数,执行该函数后停止网页滚动

      

       function stopscroll(){

       clearInterval(timer);

      

       //清除setTimeout函数的句柄 timer,停止执行scrollwindow() 函数

      

       }

       function scrollwindow(){

       currentpos = document.body.scrollTop; 

      

       //得到当前滚动条顶端位置,请注意 scrollTop 的大小写

      

       window.scroll(0,++currentpos);   

      

       //将currentpos累加的值赋给scroll方法的第二个参数

      

       if (currentpos != document.body.scrollTop){

       stopscroll();

     

       //如果 currentpos的值不等于当前滚动条的位置,则停止网页滚动

     

       }else{

       initialize();

     

       //否则继续网页的滚动

        }

       }

       document.ondblclick = initialize;

     

       //双击左键执行initialize,网页开始滚动,注意这里不同于一般调动函数的方法,这里函数名后不能有括号

     

       document.onmousedown = stopscroll;

     

       //单击左键停止网页的滚动

     

       〈/SCRIPT>

       

      这段代码就能实现,浏览者通过双击鼠标来开始滚屏,并通过单击来停止,而且滚动过程中,您可以随意拖动滚动条。当然了,您也可以单击某个按钮来开始滚屏,将这句加入网页适当位置: 就能实现。


    滚屏特效之终极篇:


       每个人的浏览速度都不同,我们到底将滚屏的速度设置成多快好呢?还是留给浏览者自己决定吧。用过“ReadBook”的朋友都知道,它的鼠标控制的无级变速滚屏非常人性化。其实我们网页中也能实现:

      

       〈SCRIPT language="JavaScript"〉

       var mousey, currentpos, timer; 

       function currentmousey() {

        mousey = window.event.y;


       //得到鼠标在网页中的Y坐标,请注意 event 的大小写


       }

       function initialize(){ 

       timer = setTimeout("scrollwindow()",mousey);


       //用鼠标在网页中的Y坐标来决定执行scrollwindow()函数的频率,从而动态改变网页的滚动速度


       }

       function stopscroll(){

        clearInterval(timer);

       }

       function scrollwindow(){

       currentpos = document.body.scrollTop;

       window.scroll(0,++currentpos); 

       if (currentpos != document.body.scrollTop){

       stopscroll();

       }else{

       initialize();

       }

       }

       document.ondblclick = initialize;

       document.onmousedown = stopscroll;

       document.onmousemove = currentmousey; 


       //当在网页上触了鼠标的移动事件,就运行currentmousey函数


       〈/SCRIPT>

        双击然后移动鼠标试试,当鼠标指针约靠近屏幕上端滚动速度就越快,反之则越慢。


网页滚动特效基本上都是大同小异的,想要什么样的效果进行简单的修改就可以了,但是天博网奉劝大家,在首页面中尽量不要使用太多特效,不然会影响首页的加载时间,一味的追求效果而影响网站打开速度就得不偿失了。