码迷,mamicode.com
首页 > Web开发 > 详细

HTML5前端实战开发课程笔记

时间:2016-01-12 23:14:14      阅读:510      评论:0      收藏:0      [点我收藏+]

标签:

 

9种轮播特效

 

布局

<div id="box">
    <ul>
        <li style="display:block"><a href="#"><img src="images/1.jpg" alt="广告一" /></a></li>
        <li><a href="#"><img src="images/2.jpg" alt="广告二" /></a></li>
        <li><a href="#"><img src="images/3.jpg" alt="广告三" /></a></li>
        <li><a href="#"><img src="images/4.jpg" alt="广告四" /></a></li>
        <li><a href="#"><img src="images/5.jpg" alt="广告五" /></a></li>
    </ul>
    <ol>
        <li class="active">1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ol>
</div>

 

1.显示隐藏效果(display切换)

 

window.onload = function(){
    //广告图片列表
    var oUl = document.getElementsByTagName(‘ul‘)[0];
    var aLiUl = oUl.getElementsByTagName(‘li‘);
    
    //按钮列表
    var oOl = document.getElementsByTagName(‘ol‘)[0];
    var aLiOl = oOl.getElementsByTagName(‘li‘);
    
    //循环遍历按钮列表
    for(var i=0;i<aLiOl.length;i++){
        //给按钮设置索引
        aLiOl[i].index = i;
        //为按钮列表中的每一项添加鼠标移入事件
        aLiOl[i].onmouseover = function(){
            for(var j=0;j<aLiOl.length;j++){
                //把按钮列表所有的按钮的类名都设置为空
                aLiOl[j].className = ‘‘;
                //把广告图片列表所有的图片都隐藏起来
                aLiUl[j].style.display = ‘none‘;
            }
            //为当前鼠标移入的按钮添加active类,让这个按钮高亮显示
            this.className = ‘active‘;
            //通过按钮列表的按钮索引找到对应的图片让其显示
            aLiUl[this.index].style.display = ‘block‘;
        };
    }
};

注:也可以把onmouseover改成onclick

 

2.淡入效果(opacity切换)

 

引入move.js

function getStyle(obj, name)
{
    if(obj.currentStyle)
    {
        return obj.currentStyle[name];
    }
    else
    {
        return getComputedStyle(obj, false)[name];
    }
}


function startMove(obj, json, fnEnd)
{
    clearInterval(obj.timer);
    obj.timer=setInterval(function (){
        var bStop=true;        //假设:所有值都已经到了
        
        for(var attr in json)
        {
            var cur=0;
            
            if(attr==‘opacity‘)
            {
                cur=Math.round(parseFloat(getStyle(obj, attr))*100);
            }
            else
            {
                cur=parseInt(getStyle(obj, attr));
            }
            
            var speed=(json[attr]-cur)/6;
            speed=speed>0?Math.ceil(speed):Math.floor(speed);
            
            if(cur!=json[attr])
                bStop=false;
            
            if(attr==‘opacity‘)
            {
                obj.style.filter=‘alpha(opacity:‘+(cur+speed)+‘)‘;
                obj.style.opacity=(cur+speed)/100;
            }
            else
            {
                obj.style[attr]=cur+speed+‘px‘;
            }
        }
        
        if(bStop)
        {
            clearInterval(obj.timer);
                        
            if(fnEnd)fnEnd();
        }
    }, 30);
}

HTML

<div id="box">
    <ul>
        <li style="display:block;"><a href="#"><img src="images/1.jpg" alt="广告一" /></a></li>
        <li><a href="#"><img src="images/2.jpg" alt="广告二" /></a></li>
        <li><a href="#"><img src="images/3.jpg" alt="广告三" /></a></li>
        <li><a href="#"><img src="images/4.jpg" alt="广告四" /></a></li>
        <li><a href="#"><img src="images/5.jpg" alt="广告五" /></a></li>
    </ul>
    <ol>
        <li class="active">1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ol>
</div>
<script src="js/move.js"></script>

JS

window.onload = function(){
    //广告图片列表
    var oUl = document.getElementsByTagName(‘ul‘)[0];
    var aLiUl = oUl.getElementsByTagName(‘li‘);
    
    //按钮列表
    var oOl = document.getElementsByTagName(‘ol‘)[0];
    var aLiOl = oOl.getElementsByTagName(‘li‘);
    
    //循环遍历按钮列表
    for(var i=0;i<aLiOl.length;i++){
        //给按钮设置索引
        aLiOl[i].index = i;
        //为按钮列表中的每一项添加鼠标移入事件
        aLiOl[i].onmouseover = function(){
            for(var j=0;j<aLiOl.length;j++){
                //把按钮列表所有的按钮的类名都设置为空
                aLiOl[j].className = ‘‘;
                //把广告图片列表所有的图片都隐藏起来
                aLiUl[j].style.display = ‘none‘;
                //把广告图片列表所有的图片的透明度都设为0
                aLiUl[j].style.filter = ‘alpha(opacity=0)‘;
                aLiUl[j].style.opacity = 0;
            }
            //为当前鼠标移入的按钮添加active类,让这个按钮高亮显示
            this.className = ‘active‘;
            //通过按钮列表的按钮索引找到对应的图片让其显示
            aLiUl[this.index].style.display = ‘block‘;
            //让对应的图片淡入
            startMove(aLiUl[this.index],{opacity:100});
        };
    }
};

 

3.淡入淡出效果(opacity&display切换)

 

HTML

<div id="box">
    <ul>
        <li style="display:block; filter:alpha(opacity=100); opacity:1;"><a href="#"><img src="images/1.jpg" alt="广告一" /></a></li>
        <li><a href="#"><img src="images/2.jpg" alt="广告二" /></a></li>
        <li><a href="#"><img src="images/3.jpg" alt="广告三" /></a></li>
        <li><a href="#"><img src="images/4.jpg" alt="广告四" /></a></li>
        <li><a href="#"><img src="images/5.jpg" alt="广告五" /></a></li>
    </ul>
    <ol>
        <li class="active">1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ol>
</div>

<script src="js/move.js"></script>

在CSS里设置其他li的透明度为0,并且层叠在一起

{filter:alpha(opacity=0); opacity:0; position:absolute; top:0; left:0;}

JS

window.onload = function(){
    //广告图片列表
    var oUl = document.getElementsByTagName(‘ul‘)[0];
    var aLiUl = oUl.getElementsByTagName(‘li‘);
    
    //按钮列表
    var oOl = document.getElementsByTagName(‘ol‘)[0];
    var aLiOl = oOl.getElementsByTagName(‘li‘);
    
    //循环遍历按钮列表
    for(var i=0;i<aLiOl.length;i++){
        //给按钮设置索引
        aLiOl[i].index = i;
        //为按钮列表中的每一项添加鼠标移入事件
        aLiOl[i].onmouseover = function(){
            for(var j=0;j<aLiOl.length;j++){
                //把按钮列表所有的按钮的类名都设置为空
                aLiOl[j].className = ‘‘;
                //让所有广告图片淡出并且隐藏
                startMove(aLiUl[i],{opacity:0},function(){
                    this.style.display = ‘none‘;
                });
            }
            //为当前鼠标移入的按钮添加active类,让这个按钮高亮显示
            this.className = ‘active‘;
            //通过按钮列表的按钮索引找到对应的图片让其显示
            aLiUl[this.index].style.display = ‘block‘;
            //让对应的图片淡入
            startMove(aLiUl[this.index],{opacity:100});
        };
    }
};

 

4.上下浮动效果(移动ul)

 

HTML

<div id="box">
    <ul>
        <li><a href="#"><img src="images/1.jpg" alt="广告一" /></a></li>
        <li><a href="#"><img src="images/2.jpg" alt="广告二" /></a></li>
        <li><a href="#"><img src="images/3.jpg" alt="广告三" /></a></li>
        <li><a href="#"><img src="images/4.jpg" alt="广告四" /></a></li>
        <li><a href="#"><img src="images/5.jpg" alt="广告五" /></a></li>
    </ul>
    <ol>
        <li class="active">1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ol>
</div>

<script src="js/move.js"></script>

JS

window.onload = function(){
    //广告图片列表
    var oUl = document.getElementsByTagName(‘ul‘)[0];
    var aLiUl = oUl.getElementsByTagName(‘li‘);
    
    //按钮列表
    var oOl = document.getElementsByTagName(‘ol‘)[0];
    var aLiOl = oOl.getElementsByTagName(‘li‘);
    
    //获取图片高度
    var oneHeight = aLiUl[0].offsetHeight;
    
    //循环遍历按钮列表
    for(var i=0;i<aLiOl.length;i++){
        //给按钮设置索引
        aLiOl[i].index = i;
        //为按钮列表中的每一项添加鼠标移入事件
        aLiOl[i].onmouseover = function(){
            for(var j=0;j<aLiOl.length;j++){
                //把按钮列表所有的按钮的类名都设置为空
                aLiOl[j].className = ‘‘;
            }
            //为当前鼠标移入的按钮添加active类,让这个按钮高亮显示
            this.className = ‘active‘;//让ul上下移动到单张图片高度与索引的积
            startMove(oUl,{top:- this.index*oneHeight});
        };
    }
};

 

可参考博客“智能社-淘宝幻灯片上下浮动效果”

智能社-淘宝幻灯片上下浮动效果

 

5.自动播放效果(Interval)

 

window.onload = function(){
    //广告图片列表
    var oUl = document.getElementsByTagName(‘ul‘)[0];
    var aLiUl = oUl.getElementsByTagName(‘li‘);
    
    //按钮列表
    var oOl = document.getElementsByTagName(‘ol‘)[0];
    var aLiOl = oOl.getElementsByTagName(‘li‘);
    
    //幻灯片container
    var oBox = document.getElementById(‘box‘);
    
    //获取图片高度
    var oneHeight = aLiUl[0].offsetHeight;
    
    //控制自动播放的标识
    var iNow = 0;
    
    //控制定时器变量
    var timer = null;
    
    //循环遍历按钮列表
    for(var i=0;i<aLiOl.length;i++){
        //给按钮设置索引
        aLiOl[i].index = i;
        //为按钮列表中的每一项添加鼠标移入事件
        aLiOl[i].onmouseover = function(){
            for(var j=0;j<aLiOl.length;j++){
                //把按钮列表所有的按钮的类名都设置为空
                aLiOl[j].className = ‘‘;
            }
            //为当前鼠标移入的按钮添加active类,让这个按钮高亮显示
            this.className = ‘active‘;
            //更新iNow以让鼠标移出后图片自动播放继续往后走
            iNow = this.index;
            //让ul上下移动到单张图片高度与索引的积
            startMove(oUl,{top:- this.index*oneHeight});
        };
    }
    
    //设置定时器让图片自动滚动
    timer = setInterval(toRun,2000);
    
    //鼠标移入清除定时器
    oBox.onmouseover = function(){
        clearInterval(timer);
    };
    
    //鼠标移出重新开启定时器
    oBox.onmouseout = function(){
        timer = setInterval(toRun,2000);
    };
    
    function toRun(){
        //当控制标识超出图片列表长度时,让标识归0,让图片列表回滚到第一张
        if(iNow == aLiOl.length-1){
            iNow = 0;
        }else{
            iNow++;
        }
        for(var i=0;i<aLiOl.length;i++){
            //把按钮列表所有的按钮的类名都设置为空
            aLiOl[i].className = ‘‘;
        }
        //为当前对应的按钮添加active类,让这个按钮高亮显示
        aLiOl[iNow].className = ‘active‘;
        //滚动图片
        startMove(oUl,{top:- iNow*oneHeight});
    }
    
    
};

 

HTML5前端实战开发课程笔记

标签:

原文地址:http://www.cnblogs.com/zcynine/p/5125770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!