温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

web前端入门到实战:简单的图片轮播

发布时间:2020-08-11 10:35:29 阅读:134 作者:智云编程 栏目:web开发
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

效果:

web前端入门到实战:简单的图片轮播

功能:
1、左右箭头切换
2、状态控制点切换
3、鼠标悬念
4、自动轮播

HTML:

<div class="zh-carousel">
    <div class="zh-img-list">
        <ul>
            <li>
                <a href="###">
                    <img src="images/img-demo02.jpg" alt="">
                    <span class="zh-desc">广西南宁低价供应各种地被、绿化苗木等</span>
                </a>
            </li>
            <li>
                <a href="###">
                    <img src="images/img-demo02-1.jpg" alt="">
                    <span class="zh-desc">广西南宁低价供应各种地被、绿化苗木等</span>
                </a>
            </li>
            <li>
                <a href="###">
                    <img src="images/img-demo02-2.jpg" alt="">
                    <span class="zh-desc">广西南宁低价供应各种地被、绿化苗木等</span>
                </a>
            </li>
        </ul>
    </div>
</div>
web前端开发学习Q-q-u-n: 731771211,分享学习的方法和需要注意的小细节,不停更新最新的教程和学习方法(详细的前端项目实战教学视频,PDF)

CSS:

.zh-carousel{position: relative;width100%;height246px;}
.zh-carousel .zh-img-list{position: relative;z-index2;width100%;height100%;overflow: hidden;}
.zh-carousel .zh-img-list ul{height100%;}
.zh-carousel .zh-img-list li{position: absolute;z-index0;left0;top0;width100%;height100%;}
.zh-carousel .zh-img-list .active{z-index1;}
.zh-carousel .zh-img-list li a{display: block;position: relative;height100%;}
.zh-carousel .zh-img-list li img{display: block;width100%;height100%;opacity0;filter:Alpha(opacity=0);-webkit-transition: all .5s ease-out;transition: all .5s ease-out;}
.zh-carousel .zh-img-list .active img{opacity1;filter:Alpha(opacity=100);}
.zh-carousel .zh-img-list li .zh-desc{display: block;position: absolute;z-index3;left0;bottom: -36px;width100%;padding10px 15px;box-sizing: border-box;background-colorrgba(0,0,0,0.5);font-size14px;color#fff;-webkit-transition: all .5s ease-out;transition: all .5s ease-out;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;}
.zh-carousel .zh-img-list .active .zh-desc{bottom0;}
.zh-carousel .zh-status-list{position: absolute;z-index4;left0;top0;width100%;padding10px 15px;box-sizing: border-box;text-align: right;}
.zh-carousel .zh-status-list li{display: inline-block;width10px;height10px;margin-left5px;background-color#fff;border1px solid #ddd;cursor: pointer;}
.zh-carousel .zh-status-list .active{background-color#FFD8C6;border1px solid #ED713D;}
.zh-carousel .zh-prev,
.zh-carousel .zh-next{display: inline-block;position: absolute;z-index4;top50%;-webkit-transformtranslate(0, -50%);transformtranslate(0, -50%);width20px;height30px;background-colorrgba(0,0,0,0.5);font-family"SimSun";font-size18px;font-weight: bold;color#fff;text-align: center;line-height30px;cursor: pointer;}
.zh-carousel .zh-prev:hover,
.zh-carousel .zh-next:hover {background-colorrgba(0,0,0,0.75);}
.zh-carousel .zh-prev{left0;}
.zh-carousel .zh-next{right0;}
web前端开发学习Q-q-u-n: 731771211,分享学习的方法和需要注意的小细节,不停更新最新的教程和学习方法(详细的前端项目实战教学视频,PDF)

JS:

$.extend({
    /*
        图片轮播
        @param options object (配置项)
    */
    carouselfunction(options) {
        var defaults = {
            box'.zh-carousel',               // 盒子
            listBox'.zh-img-list',      // 列表框
            stateBox'.zh-status-list',    // 状态框
            prev'.zh-prev',         // 上一个
            next'.zh-next',         // 下一个
            time2000                   // 动画时间
        }
        var conf = $.extend({}, defaults, options);
        // 给第一个添加状态
        $(conf.box).find(conf.listBox).find('li:first').addClass('active');
        // 获取图片的数量
        var liNum = $(conf.box).find(conf.listBox).find('li').size();
        // 添加状态列表
        var statusList = '<ul class="zh-status-list">';
        for(var i=0; i<liNum; i++) {
            if(i == 0) {
                statusList += '<li class="active"></li>';
            } else {
                statusList += '<li></li>';
            }
        }
        statusList += '</ul>';
        $(conf.box).append(statusList);
        // 添加左右按钮
        var btns = '<span class="zh-prev" type="button"><</span><span class="zh-next" type="button">></span>';
        $(conf.box).append(btns);
        // 索引
        var index = 0;
        // 切换函数
        function switchFunc(curIndex) {
            index++;
            if(index > liNum - 1) {
                index = 0;
            }
            $(conf.box).find(conf.stateBox).find('li').eq(index).addClass('active').siblings().removeClass('active');
            $(conf.box).find(conf.listBox).find('li').eq(index).addClass('active').siblings().removeClass('active');
        }
        // 自动播放
        var autoPlay = setInterval(function() {
            switchFunc(index);
        }, conf.time);
        // 鼠标悬停
        $(conf.box).find(conf.listBox).mouseover(function() {
            clearInterval(autoPlay);
        }).mouseout(function() {
            autoPlay = setInterval(function() {
                switchFunc(index);
            }, conf.time);
        });
        // 控制点
        $(conf.box).find(conf.stateBox).find('li').mouseover(function() {
            clearInterval(autoPlay);
        }).mouseout(function() {
            autoPlay = setInterval(function() {
                switchFunc(index);
            }, conf.time);
        }).click(function() {
            $(this).addClass('active').siblings().removeClass('active');
            $(conf.box).find(conf.listBox).find('li').eq($(this).index()).addClass('active').siblings().removeClass('active');
            index = $(this).index();
        });
        // 点击左箭头
        $(conf.box).find(conf.prev).mouseover(function() {
            clearInterval(autoPlay);
        }).mouseout(function() {
            autoPlay = setInterval(function() {
                switchFunc(index);
            }, conf.time);
        }).click(function() {
            index--;
            if(index < 0) {
                index = liNum - 1;
            }
            $(conf.box).find(conf.stateBox).find('li').eq(index).addClass('active').siblings().removeClass('active');
            $(conf.box).find(conf.listBox).find('li').eq(index).addClass('active').siblings().removeClass('active');
        });
        // 点击右箭头
        $(conf.box).find(conf.next).mouseover(function() {
            clearInterval(autoPlay);
        }).mouseout(function() {
            autoPlay = setInterval(function() {
                switchFunc(index);
            }, conf.time);
        }).click(function() {
            index++;
            if(index > liNum-1) {
                index = 0;
            }
            $(conf.box).find(conf.stateBox).find('li').eq(index).addClass('active').siblings().removeClass('active');
            $(conf.box).find(conf.listBox).find('li').eq(index).addClass('active').siblings().removeClass('active');
        });
    }
});
// 调用
$.carousel();

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:http://blog.itpub.net/69901074/viewspace-2673210/

AI

开发者交流群×