上下滚动轮播条

源码 :

hao_roll = {
    id:null,
    speed:30,
    timer:null,
    Num:0,
    oLiH:0,
    aLiH:0,
    mouseOn:false,
    json:null,
    //    初始化
    init:function(obj){
        this.json = {};
        for(var i in obj) {
            this.json[i] = obj[i];
        }
        this.oNav = document.getElementById(this.json.id);
//        alert(this.oNav.parentNode);
        var aLi = this.oNav.getElementsByTagName('li');
        //设置样式
        this.oNav.parentNode.style.position="relative";
        this.oNav.style.position='absolute';
        this.oNav.style.left='0';
        this.oNav.style.top='0';
        for(var i=0; i<aLi.length; i++){
            aLi[i].style.float = 'left';
        }
        this.oLiH = aLi[0].offsetHeight;
        this.aLiH = this.oLiH*aLi.length*2;
        this.oNav.innerHTML+=this.oNav.innerHTML;
//        console.log(this.aLiH)
    },
    //    定时器
    Timer:function(){
        this.timer = setInterval(function(){
            hao_roll.Num--;
//            console.log(hao_roll.Num);
            if(hao_roll.Num<=(-hao_roll.aLiH/2)){
                hao_roll.Num=1;
            }
            hao_roll.oNav.style.top = hao_roll.Num+'px'
        },this.speed);
    },
    //    事件执行
    roll:function(obj){
//        console.log(obj);
        hao_roll.init(obj);
        this.id = this.json.id;
        this.speed = this.json.speed;
        this.mouseOn = this.json.mouseOn;
        this.Timer();
        if(this.mouseOn){
            hao_roll.oNav.onmouseover = function(){
                hao_roll.moseover();
            };
            hao_roll.oNav.onmouseout = function(){
                hao_roll.moseout();
            };
        }
    },
    //鼠标移上清除定时器
    moseover:function(){
            clearInterval(this.timer);
    },
    //鼠标移开定时器继续运行
    moseout:function(){
        this.Timer()
    }
};

html代码:

</pre><pre name="code" class="html"><!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        *{margin: 0; padding: 0;}
        .tab{width: 900px; height: 30px; overflow: hidden;  margin: 100px auto;}
        .nav{width: 900px; overflow: hidden; }
        .nav ul{width:900px; overflow: hidden;}
        .nav ul li{width: 900px; height: 30px; background: #000000;text-align: center; color: #FFFFFF; list-style: none ; line-height: 30px; cursor: pointer}
        .nav .a{background: #ff0000;}
        .nav .b{background: #000000;}
        .nav .c{background: #0038c0;}

    </style>
</head>
<body>
<div class="tab">
    <div class="nav" id="Nav">
        <ul>
            <li class="a">第一行</li>
            <li class="b">第二行</li>
            <li class="c">第三行</li>
        </ul>
    </div>
</div>
<script src="js/hao_roll.js"></script>
<script>
    hao_roll.roll({
        id:'Nav', //设置ID
        speed:30, //设置滚动速度单位毫秒
        mouseOn:true  //是否打开鼠标移上停止滚动默认是false
    });
</script>
</body>
</html>

时间: 2024-07-31 02:18:25

上下滚动轮播条的相关文章

天猫京东app中常见的上下滚动轮播效果如何实现?

前段时间,公司安排我们团队制作一个上下滚动轮播效果,类似于我们在天猫京东app中常见的这样: 哇kao!那么高大上,完全不会呀??? 幸好,前几天一个朋友在朋友圈分享了一篇推文.瞬间引领我们走出了迷茫,这个教程特别实用! 做法: 创建母版,拖入文字组件,输入文字,将文字组件调整到合适的位置和大小:添加全局手势.复制页面1,将其分别命名为页面2.页面3,并修改文字组件的内容. 通过全局手势,页面1链接到页面2,页面2链接到页面3,页面3链接到页面1:其中在链接页面时,将定时器设置为1秒:动效时长设

10.下拉刷新、加载更多、标记已读、轮播条、缓存

下拉刷新.加载更多.标记已读.轮播条.缓存 下拉刷新------- 1.addHeaderView必须在setAdapter之前调用 2.将paddingTop设置一个headerView高度的负值去隐藏它 getHeight()和getMeasuredHeight()的区别: getMeasuredHeight():获取测量完的高度,只要在onMeasure方法执行完,就可以用 它获取到宽高,在自定义控件内部多使用这个 使用view.measure(0,0)方法可以主动通知系统去测量,然后就

Viewpager(上)--广告自动轮播

本例子是通过ViewPager来实现广告自动轮播,并且实现小圆点的显示和点击监听等功能,算是比较实用的功能了. 此例子可自动播放.滑动和位置的随意调整,比较灵活,原项目中是添加了三级缓存的,不过想之后单写一个缓存的就先拿图片做了个DEMO. 如有什么好的建议,请大家提出来,共同进步.. 效果图: 代码结构:主要就是3个文件,主类.viewpager适配器.页面的xml布局 原理网上有很多,所以直接在代码上写比较详细的注释,就不多说了- - 主类 <span style="font-size

jQuery图片插件自动轮播原理解析

经常看到项目要用到图片轮播效果,一般的操作流程都是先到网上找一个好看的JQuery图片轮播插件,然后看下demo,再配下参数.好了,关机下班回家 其余的就交给插件吧. 是不是感觉有了jQuery,世界变得那么美好呢. 本人最近用的一个插件是 jquery.carousel.js,官方网站是:http://richardscarrott.co.uk/posts/view/jquery-carousel-plugin 下面,我们来讨论一下图片轮播原理. 首先来个简单的demo 效果图如下: 这是个导

Viewpager图片自动轮播,网络图片加载,图片自动刷新

package com.teffy.viewpager; import java.util.ArrayList; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import android.annotation.SuppressLint; import android.app.Act

jquery特效(4)—轮播图②(定时自动轮播)

今天逛了一天街,把田子坊.人民广场.静安寺公园遛了一遍,吃了很多好吃的东西~~~然后就回公司好好地研究代码了,也算是把定时自动轮播程序写出来了,特意说明一下,这次的轮播图是在昨天随笔中jquery特效(3)—轮播图①(手动点击轮播)的基础上写出来的,也就是本次随笔展示的是手动点击轮播效果以及定时自动轮播效果的程序,建议想连贯学习的小伙伴把我昨天写的笔记看完后再看这篇文章~~~~ 下面来看看我做的最终定时自动轮播效果以及手动点击轮播效果: 对于上面的展示动画速度比较快的原因是因为我的截图软件是绿色

使用ViewPager实现自动轮播

很多APP中都实现了类似引导页的自动轮播,不由得想到昨天的引导页上修改一下代码实现轮播. 其实大体上只需要添加一个线程循环执行就可以了. 同样的先上图 直接上代码,注释都全的,我想这样更有利于理解. 先改了Adapter package com.example.nanchen.taketurnplaydemo; import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.Vi

Android 实现带指示器的自动轮播式ViewPager

前言 最近在做项目的时候,有个需求就是实现自动轮播式的ViewPager,最直观的例子就是知乎日报顶部的ViewPager,它内部有着好几个子view,每个一段时间便自动滑动到下一个item view,而底部的指示器也随之跟着改变.使用这种ViewPager的好处是在有限的空间内可以展示出多样化的信息.轮播式ViewPager广泛应用于各种应用内部,用于展示广告等.抱着学习和分享的目的,笔者把轮播式ViewPager写成了一个独立的控件,以方便以后的使用. 效果展示 话不多说,我们先来看看实现的

自定义广告轮播条向右滑动出现空白

在新项目中,广告轮播条当然非常常用了,我也是挺懒的一个人,直接用了上个App中另一个哥们用的代码,用ViewPager和Timer类实现的,看着代码应该也是网上谁写的,具体已经不知道了,代码有段类似这样 Activity mActivity; // 上下文 List<View> mListViews; // 图片组 int mScrollTime = 0; Timer timer; int oldIndex = 0; int curIndex = 0; 广告轮播本身没问题,功能都可以实现,包括