zoukankan      html  css  js  c++  java
  • 信息栏滚动效果学习总结

    主要考察的知识点是:定时器的应用,scrollTop,offsetHeight的用法,一个很简单的js应用场景。

    一个小技巧实现无缝循环,原理是复制一份滚动区域,在滚动到一半以后,原区域回到最初位置。

    遇到了一个问题待解决,查阅了以后没有找到答案,虽然影响不大,但是希望能得到解答:

    javascript里不加window.onload的时候,定时器里函数用 “函
    数名()” 的形式是可以有效的,但是如果加上window.onload后就没有效果了
    。 如果是直接用函数名,则不受影

    贴代码:

    信息栏无缝滚动效果:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>向上无缝滚动</title>
    <style>
    body {
    	font-size: 12px;
    	line-height: 24px;
    	text-align: center;        /* 页面内容居中 */
    }
    * {
    	margin: 0px;
    	padding: 0px;            /*  去掉所有标签的marign和padding的值  */
    }
    ul {
    	list-style: none;           /*  去掉ul标签默认的点样式  */
    }
    a img {
    	border: none;        /*  超链接下,图片的边框  */
    }
    a {
    	color: #333;
    	text-decoration: none;     /* 超链接样式 */
    }
    a:hover {
    	color: #ff0000;
    }
    #mooc {
    	 399px;
    	border: 5px solid #ababab;
    	-moz-border-radius: 15px;      /* Gecko browsers */
    	-webkit-border-radius: 15px;   /* Webkit browsers */
    	border-radius: 15px;
    	box-shadow: 2px 2px 10px #ababab;
    	margin: 50px auto 0;
    	text-align: left;               /* 让新闻内容靠左 */
    }
    /*  头部样式 */	
    #moocTitle {
    	height: 62px;
    	overflow: hidden;  /* 这个一定要加上,内容超出的部分要隐藏,免得撑高头部 */
    	font-size: 26px;
    	line-height: 62px;
    	padding-left: 30px;
    	background-image: -moz-linear-gradient(top, #f05e6f, #c9394a); /* Firefox */
    	background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #f05e6f), color-stop(1, #c9394a)); /* Saf4+, Chrome */
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#8fa1ff', endColorstr='#f05e6f', GradientType='0'); /* IE*/
    	border: 1px solid ##f05e6f;
    	-moz-border-radius: 8px 8px 0 0;      /* Gecko browsers */
    	-webkit-border-radius: 8px 8px 0 0;   /* Webkit browsers */
    	border-radius: 8px 8px 0 0;
    	color: #fff;
    	position: relative;
    }
    #moocTitle a {
    	position: absolute;
    	right: 10px;
    	bottom: 10px;
    	display: inline;
    	color: #fff;
    	font-size: 12px;
    	line-height: 24px;
    }
    /*  底部样式 */
    #moocBot {
    	 399px;
    	height: 10px;
    	overflow: hidden;     /* 这个一定要加上,内容超出的部分要隐藏,免得撑高底部结构 */
    }
    /*  中间样式 */
    #moocBox {
    	height: 144px;
    	 335px;
    	margin-left: 25px;
    	margin-top: 10px;
    	overflow: hidden;    /*  这个一定要加,超出的内容部分要隐藏,免得撑高中间部分 */
    }
    #mooc ul li {
    	height: 24px;
    }
    #mooc ul li a {
    	 180px;
    	float: left;
    	display: block;
    	overflow: hidden;
    	text-indent: 15px;
    	height: 24px;
    }
    #mooc ul li span {
    	float: right;
    	color: #999;
    }
    </style>
    </head>
    
    <body>
    <!--  慕课网课程公告开始 -->
    <div  id="mooc"> 
    <!--  头部 -->
    <h3 id="moocTitle">最新课程<a href="#" target="_self">更多>></a> </h3>
    <!--  头部结束 --> 
    <!--  中间 -->
    <div  id="moocBox">
        <ul id="con1">
            <li><a href="#">1.学会html5 绝对的屌丝逆袭(案例)</a><span>2013-09-18</span></li>
            <li><a href="#">2.tab页面切换效果(案例)</a><span>2013-10-09</span></li>
            <li><a href="#">3.圆角水晶按钮制作(案例)</a><span>2013-10-21</span></li>
            <li><a href="#">4.HTML+CSS基础课程(系列)</a><span>2013-11-01</span></li>
            <li><a href="#">5.分页页码制作(案例)</a><span>2013-11-06</span></li>
            <li><a href="#">6.导航条菜单的制作(案例)</a><span>2013-11-08</span></li>
            <li><a href="#">7.信息列表制作(案例)</a><span>2013-11-15</span></li>
            <li><a href="#">8.下拉菜单制作(案例)</a><span>2013-11-22</span></li>
            <li><a href="#">9.如何实现“新手引导”效果</a><span>2013-12-06</span></li>
        </ul>
        <ul id="con2">
        </ul>
    </div>
    <!--  中间结束 --> 
    </div>
    <!--  慕课网课程公告结束 --> 
    <script type="text/javascript"> 
          window.onload=function(){
              var scrollHeight=24;
               var area=document.getElementById('moocBox');
              var con1=document.getElementById('con1');
              var con2=document.getElementById('con2');
              con2.innerHTML=con1.innerHTML;
              area.scrollTop=0;
        function scrollUp(){
            if(area.scrollTop%scrollHeight==0){
                clearInterval(myScroll);
                setTimeout(scrollTop++,2000)
            }
            if(area.scrollTop>=con1.offsetHeight){
                    area.scrollTop=0;
                }
              else{
                  area.scrollTop++;
              }
        }      
              
              setTimeout(scrollUp,2000);
             var myScroll = setInterval(scrollUp,50);
          
          area.onmouseover=function(){
              clearInterval(myScroll);
          }
           area.onmouseout=function(){
                myScroll = setInterval(scrollUp,50);
           }
          }
        
    </script>
    </body>
    </html>
    

      

    信息栏间歇性滚动效果:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>新闻无缝向上无缝滚动</title>
    <style>
    body {
    	font-size: 12px;
    	line-height: 24px;
    	text-align: center;        /* 页面内容居中 */
    }
    * {
    	margin: 0px;
    	padding: 0px;            /*  去掉所有标签的marign和padding的值  */
    }
    ul {
    	list-style: none;           /*  去掉ul标签默认的点样式  */
    }
    a img {
    	border: none;        /*  超链接下,图片的边框  */
    }
    a {
    	color: #333;
    	text-decoration: none;     /* 超链接样式 */
    }
    a:hover {
    	color: #ff0000;
    }
    #mooc {
    	 399px;
    	border: 5px solid #ababab;
    	-moz-border-radius: 15px;      /* Gecko browsers */
    	-webkit-border-radius: 15px;   /* Webkit browsers */
    	border-radius: 15px;
    	box-shadow: 2px 2px 10px #ababab;
    	margin: 50px auto 0;
    	text-align: left;               /* 让新闻内容靠左 */
    }
    /*  头部样式 */	
    #moocTitle {
    	height: 62px;
    	overflow: hidden;  /* 这个一定要加上,内容超出的部分要隐藏,免得撑高头部 */
    	font-size: 26px;
    	line-height: 62px;
    	padding-left: 30px;
    	background-image: -moz-linear-gradient(top, #f05e6f, #c9394a); /* Firefox */
    	background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #f05e6f), color-stop(1, #c9394a)); /* Saf4+, Chrome */
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#8fa1ff', endColorstr='#f05e6f', GradientType='0'); /* IE*/
    	border: 1px solid ##f05e6f;
    	-moz-border-radius: 8px 8px 0 0;      /* Gecko browsers */
    	-webkit-border-radius: 8px 8px 0 0;   /* Webkit browsers */
    	border-radius: 8px 8px 0 0;
    	color: #fff;
    	position: relative;
    }
    #moocTitle a {
    	position: absolute;
    	right: 10px;
    	bottom: 10px;
    	display: inline;
    	color: #fff;
    	font-size: 12px;
    	line-height: 24px;
    }
    /*  底部样式 */
    #moocBot {
    	 399px;
    	height: 10px;
    	overflow: hidden;     /* 这个一定要加上,内容超出的部分要隐藏,免得撑高底部结构 */
    }
    /*  中间样式 */
    #moocBox {
    	height: 144px;
    	 335px;
    	margin-left: 25px;
    	margin-top: 10px;
    	overflow: hidden;    /*  这个一定要加,超出的内容部分要隐藏,免得撑高中间部分 */
    }
    #mooc ul li {
    	height: 24px;
    }
    #mooc ul li a {
    	 180px;
    	float: left;
    	display: block;
    	overflow: hidden;
    	text-indent: 15px;
    	height: 24px;
    }
    #mooc ul li span {
    	float: right;
    	color: #999;
    }
    </style>
    </head>
    
    <body>
    <!--  慕课网课程公告开始 -->
    <div  id="mooc"> 
    <!--  头部 -->
    <div  id="moocTitle">慕课网最新课程<a href="#" target="_self">更多>></a> </div>
    <!--  头部结束 --> 
    <!--  中间 -->
    <div  id="moocBox">
        <ul>
            <li><a href="#">1.学会html5 绝对的屌丝逆袭(案例)</a><span>2013-09-18</span></li>
            <li><a href="#">2.tab页面切换效果(案例)</a><span>2013-10-09</span></li>
            <li><a href="#">3.圆角水晶按钮制作(案例)</a><span>2013-10-21</span></li>
            <li><a href="#">4.HTML+CSS基础课程(系列)</a><span>2013-11-01</span></li>
            <li><a href="#">5.分页页码制作(案例)</a><span>2013-11-06</span></li>
            <li><a href="#">6.导航条菜单的制作(案例)</a><span>2013-11-08</span></li>
            <li><a href="#">7.信息列表制作(案例)</a><span>2013-11-15</span></li>
            <li><a href="#">8.下拉菜单制作(案例)</a><span>2013-11-22</span></li>
            <li><a href="#">9.如何实现“新手引导”效果</a><span>2013-12-06</span></li>
        </ul>
    </div>
    <!--  中间结束 --> 
    <!--  底部 -->
    <div  id ="moocBot"> </div>
    <!--  底部结束 --> 
    </div>
    <!--  慕课网课程公告结束 --> 
    
    <script type="text/javascript">
     var area = document.getElementById('moocBox');
     var iliHeight = 24;//单行滚动的高度
     var speed = 50;//滚动的速度
     var time;
     var delay= 2000;
     area.scrollTop=0;
     area.innerHTML+=area.innerHTML;//克隆一份一样的内容
     function startScroll(){
    	 time=setInterval("scrollUp()",speed);
    	 area.scrollTop++;
    	 }
     function scrollUp(){
    	 if(area.scrollTop % iliHeight==0){
    		 clearInterval(time);
    		 setTimeout(startScroll,delay);
    		 }else{
    			 area.scrollTop++;
    			 if(area.scrollTop >= area.scrollHeight/2){
    				 area.scrollTop =0;
    				 }
    			 }
    	 }
    	 setTimeout(startScroll,delay)
     </script>
    </body>
    </html>
    

      

  • 相关阅读:
    mysql 查看某数据库各个表容量大小SQL
    Gated RNN(《深度学习进阶》第六章总结)
    RNN(《深度学习进阶》第五章总结)
    word2vec的改进(《深度学习进阶》第四章总结)
    201521123024 《Java程序设计》 第九周学习总结
    如何在vue项目中使用md5及base64加密
    vite+vue3.0+vue-router+vuex快速搭建项目
    vite+vue3.0搭建项目
    MySQL创建计划任务
    MySQL基础函数
  • 原文地址:https://www.cnblogs.com/oldchicken/p/6428786.html
Copyright © 2011-2022 走看看