jQuery css3全屏banner轮播切换动画效果



180 717 240



特效描述:jQuery css3 全屏banner 轮播切换 动画效果,模仿腾讯首页的切换方式。这个模板图片切图是难点。(不兼容IE6,7,8)

代码结构

1. 引入CSS

<link href="css/banner.css" rel="stylesheet" type="text/css" />

2. 引入JS

<script src="js/jquery-1.10.2.min.js"></script>

3. HTML代码

    <div id="banner_box" class="banner_box">
        <div class="banner_cot">
            <!--放banner页面-->
            <div class="banner_list" id="banner_list">
                <!--第一个页面 天空下的猫老师-->
                <div class="page_box show">
                    <div class="bg_box">
                        <img src="image/sky_xia.png" class="sky_xia sky_anim2" />
                        <img src="image/sky_shang.png" />
                    </div>
                    <div class="content">
                        <div class="main_box">
                            <div class="sky_cot sky_anim2">
                                <img src="image/sky_cot2.png" />
                            </div>
                        </div>
                    </div>
                </div>
                <!--第二个页面 房间里的猫老师-->
                <div class="page_box">
                    <div class="bg_box">
                        <img src="image/room_bg2.jpg" />
                    </div>
                    <div class="content">
                        <div class="main_box">
                            <div class="room_cot">
                                <div class="room_anim">
                                    <img src="image/room_cot2.png" />
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <!--第三个页面 雪中的猫老师-->
                <div class="page_box  ">
                    <div class="bg_box">
                        <img src="image/snow_bg3.png" />
                    </div>
                    <div class="content">
                        <div class="main_box">
                            <div class="snow_cot snow_anim">
                                <img src="image/snow_cot3.png" />
                            </div>
                        </div>
                    </div>
                </div>
                <!--第四个页面 森林中的猫老师-->
                <div class="page_box ">
                    <div class="bg_box">
                        <img src="image/forest_bg4.jpg" />
                    </div>
                    <div class="content">
                        <div class="main_box">
                            <div class="forest_cot forest_anim">
                                <img src="image/forest_cont2.png" />
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <!--放浮动链接小图标-->
            <div class="product_btns" id="product_btns">
                <div class="content">
                    <div class="btns_box" id="control_box">
                        <a href="#" class="icon_bg icon_show"></a>
                        <a href="#" class="icon_bg"></a>
                        <a href="#" class="icon_bg"></a>
                        <a href="#" class="icon_bg"></a>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <script>
        (function () {
            //2016-13-10 begin
            var $banner_box = $("#banner_box"),
                $pages = $("#banner_list").find(".page_box"),
                  $mainBoxs = $pages.find(".main_box"),
                   $bgs = $pages.find(".bg_box img"),
                $controlBox = $("#control_box"),
                $productBtns = $("#product_btns"),
                $controls = $controlBox.find("a");
            var data = {
                pLength: $pages.length,//记录一共有多少个page_box
                curP: 0,
                isCan: true,
                isOnbtn: false,
                fColor: [2, 2, 1, 1, 1],
                dur: 3500,
                cNum: 0
            };
            //自动轮播换页函数
            var cId;
            var pageChange = function (idx) {
                if (data.isOnbtn)
                    return;
                if (idx >= -1 && idx < data.pLength && idx != data.curP && data.isCan) {
                    data.isCan = false;
                    data.cNum++;
                    clearInterval(cId);//停止动画
                    idx = idx == -1 ? data.pLength - 1 : idx;//条件表达式 真前假后 指向最后一张
                    $controls.removeClass("icon_show").eq(idx).addClass("icon_show");
                    $pages.eq(data.curP).css({ zIndex: 0 });
                    $pages.eq(idx).addClass("show").css({ opacity: 0, zIndex: 1 }).animate({ opacity: 1 }, 400, function () {
                        $pages.eq(data.curP).removeClass("show");
                        $(this).addClass("show");
                        data.isCan = true;
                        data.curP = idx;
                        data.cNum--;
                        if (data.cNum == 0) {
                            //setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
                            cId = setInterval(function () {
                                pageChange((data.curP + 1) % data.pLength);
                                //% 求余数 当要处理 X % Y时, 如果, X < Y 的话, 回传值就是 X 自己 1 % 4 = 1
                            }, data.dur);//data.dur 是时间
                        }
                    });
                }
            }
            //鼠标经过 下方导航
            $controls.on("mouseenter", function () {
                data.isCan = true;
                pageChange($controls.index(this));
                data.isOnbtn = true;
            });
            $controls.on("mouseleave", function () {
                data.isOnbtn = false;
            });
            cId = setInterval(function () {
                pageChange((data.curP + 1) % data.pLength);
            }, data.dur);
            //网页自由缩放  2016-10-12 调整
            var isIE6 = navigator.userAgent.indexOf("MSIE 6.0") > 0;//获取浏览器的版本
            //调整
            //页面自缩放
            var resize = function () {
                var w = $(window).width(),
                    h = $(window).height();
                $banner_box.height(h);
                if (w / h < 1920 / 1080) {
                    $bgs.height(h).css({ width: "auto", margin: -.5 * h + "px 0 0 " + -.5 * 1920 / 1080 * h + "px" });
                } else {
                    $bgs.width(w).css({ height: "auto", margin: -.5 * w * 1080 / 1920 + "px 0 0 " + -.5 * w + "px" });
                }
                resize_img(w, h);//调用函数 改变内容图片大小
                var imgH = $bgs.height();
                $mainBoxs.height(imgH).css("margin-top", -.5 * imgH + "px");
                var cls;
                switch (true) {
                    case w >= 1600: { cls = "big_view"; break; }
                    case w < 1600 && w >= 1440: { cls = "mid_view"; break; }
                    case w < 1440: { cls = "small_view"; break; }
                }
                var ws = $banner_box[0].className;
                if (isIE6 && (ws.indexOf("big") != -1 || ws.indexOf("mid") != -1 || ws.indexOf("small") != -1) && ws.indexOf(cls) == -1)
                    location.reload();
                banner_box.className = "banner_box " + cls;
            };
            $(window).resize(resize);
            resize();
            function resize_img(w, h) {
                var snoww = w * 593 / 1920,
                   snowh = h * 448 / 1080;
                var roomw = w * 668 / 1920,
                    roomh = h * 585 / 1080;
                var forestw = w * 500 / 1920,
                    foresth = h * 636 / 1080;
                var skyw = w * 371 / 1920,
                    skyh = h * 341 / 1080;
                if (w / h < 1920 / 1080) {
                    //$(".snow_cot").height(snowh).css({ width: snowh * 宽 / 高 + "px", margin: "0 0 0" + -.5 * 宽 / 高 * snowh + "px" });
                    $(".snow_cot").height(snowh).css({ width: snowh * 593 / 448 + "px", margin: "0 0 0" + -.5 * 593 / 448 * snowh + "px" });
                    $(".room_cot").height(roomh).css({ width: roomh * 668 / 585 + "px", margin: "0 0 0" + -.5 * 400 / 585 * roomh + "px" });
                    $(".forest_cot").height(foresth).css({ width: foresth * 500 / 636 + "px", margin: "0 0 0" + -.5 * 500 / 636 * foresth + "px" });
                    $(".sky_cot").height(skyh).css({ width: skyh * 371 / 341 + "px" });
                } else {
                    //$(".snow_cot").width(snoww).css({ height: snoww * 高 / 宽 + "px", margin: "0 0 0" + -.5 * snoww + "px" });
                    $(".snow_cot").width(snoww).css({ height: snoww * 448 / 593 + "px", margin: "0 0 0" + -.5 * snoww + "px" });
                    $(".room_cot").width(roomw).css({ height: roomw * 585 / 668 + "px", margin: "0 0 0" + -.5 * 400 * roomw / 668 + "px" });
                    $(".forest_cot").width(forestw).css({ height: forestw * 636 / 500 + "px", margin: "0 0 0" + -.5 * forestw + "px" });
                    $(".sky_cot").width(skyw).css({ height: skyw * 341 / 371 + "px" });
                }
            }
        })();
    </script>
    <script>
    </script>



用户评论
大牛,别默默的看了,快登录帮我点评一下吧!:)      登录 | 注册


热门标签: 导航切换 图片翻转旋转 图片淡出淡进 图片全屏 html5动画导航菜单 带标题的焦点图 文字翻转旋转 文字淡出淡进 文字全屏 html5图片动画 带缩略图的幻灯片 带简介的焦点图 图片切换 旋转木马 360全景 html5文字动画 图片轮播 文字切换 自动滚动图片轮播 html5表情动画 背景切换 马赛克幻灯片 html5线条动画 手风琴 全屏焦点图 选项卡自动切换 html5飘落动画 视频切换 html5光标动画 列表切换 渐隐切换 html5悬停动画 全屏切换 切换按钮 缩放切换 滚动切换 滑动选项卡切换 加载动画 flash焦点图 选项卡切换 滑动手风琴 全屏焦点图 html5弹窗动画 转动旋转翻转 渐隐切换 全屏切换 淡出淡入淡进 宽屏全屏满屏 html5动画h5动画 焦点图幻灯片 html5按钮动画

×
×
51前端

注册

官方QQ群
qq群

扫描上面二维码加微信群

官方QQ群

jQuery/js讨论群
群号:642649996
Css3+Html5讨论群
群号:322131262

加群请备注:从官网了解到