js实现文字无缝轮播

本文实例为大家分享了js实现文字无缝轮播的具体代码,供大家参考,具体内容如下

所用到的知识点:

innerHTML 获取或设置某个对象的内容
scrollTop 滚动条滚动的距离,此属性是系统内置定义好的
offsetHeight 获取或设置对象的高度
setInterval() 开启定时器
clearInterval() 关闭定时器

html布局结构如下:

其中con2是用来储存复制con1内容的容器

<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>

</body>

css样式如下:

<style>
body {
    font-size: 12px;
    line-height: 24px;
    text-algin: 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 {
    width: 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 {
    width: 399px;
    height: 10px;
    overflow: hidden;     /* 这个一定要加上,内容超出的部分要隐藏,免得撑高底部结构 */
}
/*  中间样式 */
#moocBox {
    height: 144px;
    width: 335px;
    margin-left: 25px;
    margin-top: 10px;
    overflow: hidden;    /*  这个一定要加,超出的内容部分要隐藏,免得撑高中间部分 */
}
#mooc ul li {
    height: 24px;
}
#mooc ul li a {
    width: 180px;
    float: left;
    display: block;
    overflow: hidden;
    text-indent: 15px;
    height: 24px;
}
#mooc ul li span {
    float: right;
    color: #999;
}
</style>

js代码如下:

<script>
    var area=document.getElementById('moocBox');
    area.scrollTop=0;//scrollTop初始化对象滚动条的距离,此属性是系统标准化的
    //获取第一个ul对象
    var con1=document.getElementById('con1');
    //获取第二个ul对象
    var con2=document.getElementById('con2');
    //将第一个ul对象里的内容给第二个ul对象
    con2.innerHTML=con1.innerHTML;
    //封装函数 用来判断滚动条的距离与盒子高度的关系
    function scrollUp(){
        if(area.scrollTop>=con1.offsetHeight){
            area.scrollTop=0;
        }else{
            area.scrollTop++;
        }
    }
    //声明定时器
    var timer=null;
    //解决暴力用户 在开启定时器之前最好先清除一下定时器
    clearInterval(timer);
    //开始定时器
    timer=setInterval(scrollUp,50);

    //为对象设置绑定鼠标滑过
    area.onmouseover=function(){
        clearInterval(timer);
    }
    //为对象绑定鼠标划出
    area.onmouseout=function(){
        timer=setInterval(scrollUp,50);
    }
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 原生js实现无缝轮播图

    本文实例为大家分享了js实现无缝轮播图的具体代码,供大家参考,具体内容如下 先上效果图 原理图 如图可见,是页面按顺序依次显示5张图片,包裹这五张图片的外层的盒子,我们叫ul,通过向左或右移动不同距离,实现在视图中显示的不同的图片,实现轮播,而同时下面的分页小球需要根据当前显示的内容进行点亮: 而无缝轮播图需要在第五张图片后面再加上第一张图片,这样通过右侧箭头,向右切换,当页面切换到第六张时,也就是最后一张图片,此时需要将ul的位置设置为第一张图的位置,然后从第一张图片滑动到第二张,形成一个无缝

  • JS实现左右无缝轮播图代码

    废话不多说了,直接给大家贴代码了. 无缝轮播图: <title>无缝轮播图</title> <style> *{margin: 0;padding:0; } ul{list-style: none;} .banner{width: 600px;height: 300px;border: 2px solid #ccc;margin: 100px auto;position: relative;overflow: hidden;} .img{position: absolu

  • js实现无缝轮播图

    本文实例为大家分享了js实现轮播图的具体代码,供大家参考,具体内容如下 CSS样式: <style type="text/css"> #box{width: 1000px;height: 375px;border: 3px solid black; margin: 30px auto;position: relative;overflow: hidden;} #box .img{position: absolute;left: 0;top: 0;} #box .img im

  • js实现从右往左匀速显示图片(无缝轮播)

    本文实例为大家分享了js实现从右往左匀速显示图片的具体代码,供大家参考,具体内容如下 前言: 匀速显示图片,一般用于重复显示公司活动系列图片 背景图片: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <style type="text/css"> *{ margin: 0; padding: 0; } .

  • 原生js实现无缝轮播图效果

    话不多说,请看代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>无缝轮播图-原生js封装</title> <link rel="shortcut icon" href="../public/image/favicon.ico" type="ima

  • JS左右无缝轮播功能完整实例

    本文实例讲述了JS左右无缝轮播功能.分享给大家供大家参考,具体如下: 其中对上一页下一页按钮设置visibility属性是为了解决轮播中点击上一页下一页导致的bug,应为是a标签所以用了visibility属性,如果是按钮button可以直接设置在轮播过程中按钮不可点击,当然其他解决方法都可以,以实际为准 代码如下:换换图片就可以直接用 <!DOCTYPE html> <html> <head lang="en"> <meta charset=

  • js实现无缝轮播图插件封装

    前言:页面中轮播图,对于一个前端开发者来说,是最基本的技能,不论是的商城网站,还是企业站,轮播图已经成为不可缺少的一个模块,而常见的轮播图不外乎两种,一种是渐隐渐现轮播图,一种是无缝轮播图.网上关于轮播图的件也有很多,但是用人家的代码总会出现各种各样的bug,我们修改bug往往要耗费很多时间,而且有些插件的效果还不符合我们的需求,那么我们该如何封装一个自己的轮播插件呢?这就是我们今天的任务,封装轮播插件. 1.特效离不开合理的页面布局,所以我们首先需要进行页面布局: HTML代码: <div c

  • JS实现动态无缝轮播

    在同学的帮助下,终于使用纯js代码实现了动态轮播,学无止境加油吧! 效果图是这样的,我们需要定义一个div,并放入三张图片,还需要左右两个按钮,以及底下三个按钮三个div. 先看布局代码 <div class="banner" id="banner"> <ul class="clear" > <li style="left:0" ><img src="k1.jpg"

  • js实现无缝轮播图效果

    本文实例为大家分享了js实现无缝轮播图的具体代码,供大家参考,具体内容如下 //Utils.js //封装 预加载图片 var Utils=(function () { return { //SSS loadImg:function (srcList,callBack) {//图片地址 回调函数 var img=new Image(); img.num=0;//初始化num为0 图片数 img.imgList=[];//存放图片 img.srcList=srcList; img.callBack

  • js实现无缝轮播图特效

    用原生js实现无缝轮播图,供大家参考,具体内容如下 index.js: var config = { imgWidth:380,//图片尺寸 dotWidth:8,//小圆点尺寸 doms:{ divImgs:document.querySelector('.imgs'), divDots:document.querySelector('.circle'), divDirection:document.querySelector('.direction'), divContainer:docum

随机推荐