当前位置:首页 > 随笔

简单的banner轮播

zhao_99201个月前 (02-02)随笔2157
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>简单的banner轮播-jq22.com</title>
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.3.min.js"></script>
<style>
@charset "utf-8";
	* {
	box-sizing:border-box;
}
body,div,p,h1 {
	margin:0;
	padding:0;
}
img {
	border:0;
	display:block;
	max-width:100%;
    height: 300px;
	vertical-align:middle;
}
.js-silder {
	position:relative;
	min-width:320px;
}
.silder-scroll {
	width:100%;
	overflow:hidden;
}
.silder-main {
	position:relative;
	width:100%;
	overflow:hidden;
}
.silder-main-img {
	position:absolute;
	top:0;
	left:0;
	width:100%;
}
.silder-main-img img {
	width:100%;
}
.js-silder-ctrl {
	width:100%;
	text-align:center;
}
.silder-ctrl-prev,.silder-ctrl-next {
	position:absolute;
	top:0;
	width:8%;
	height:100%;
	vertical-align:middle;
	cursor:pointer;
	color:#fff;
	font-family:"微软雅黑";
	font-size:52px;
	font-weight:600;
	text-shadow:#666 2px 2px 5px;
}
.silder-ctrl-prev {
	left:0;
	text-align:left;
}
.silder-ctrl-next {
	right:0;
	text-align:right;
}
.silder-ctrl-prev>span,.silder-ctrl-next>span {
	position:absolute;
	top:50%;
	margin-top:-40px;
}
.silder-ctrl-prev>span {
	left:0;
}
.silder-ctrl-next>span {
	right:0;
}
.silder-ctrl-con {
	display:inline-block;
	width:4%;
	padding-bottom:10px;
	margin:0 10px;
	cursor:pointer;
}
.silder-ctrl-con>span {
	display:block;
	line-height:0;
	text-indent:-9999px;
	overflow:hidden;
	padding:5px 0;
	cursor:pointer;
	background-color:#e4e4e4;
}
.silder-ctrl-con.active>span {
	background-color:#00888c;
}
@media (max-width:768px) {
	.silder-ctrl-prev,.silder-ctrl-next {
	width:10%;
	font-size:26px;
	margin-top:-25px;
}
.silder-ctrl-con {
	width:14px;
	height:14px;
	padding:0;
	margin:0 5px;
}
.silder-ctrl-con>span {
	display:block;
	width:100%;
	height:100%;
	border-radius:50%;
	padding:0;
}
}</style>
</head>
<body>
<div class="js-silder">
    <div class="silder-scroll">
        <div class="silder-main">
            <div class="silder-main-img">
                <img src="http://www.jq22.com/img/cs/500x300-1.png" alt="">
            </div>
            <div class="silder-main-img">
                <img src="http://www.jq22.com/img/cs/500x300-2.png" alt="">
            </div>
            <div class="silder-main-img">
                <img src="http://www.jq22.com/img/cs/500x300-3.png" alt="">
            </div>
        </div>
    </div>
</div>

<script>
    $(function() {
        $(".js-silder").silder({
            auto: true, //自动播放,传入任何可以转化为true的值都会自动轮播
            speed: 20, //轮播图运动速度
            sideCtrl: true, //是否需要侧边控制按钮
            bottomCtrl: true, //是否需要底部控制按钮
            defaultView: 0, //默认显示的索引
            interval: 3000, //自动轮播的时间,以毫秒为单位,默认3000毫秒
            activeClass: "active", //小的控制按钮激活的样式,不包括作用两边,默认active
        });
    });
</script>

<script>
(function(b) {
    function a(c, d) {
        this._init(c, d)
    }
    a.prototype._init = function(c, d) {
        ([]).push.apply(this, Array.prototype.slice.apply(c));
        this._options = {
            auto: true,
            speed: 20,
            sideCtrl: true,
            "defaultView": 0,
            interval: 3000,
            activeClass: "active",
            bottomCtrl: true,
        };
        var e = this;
        b.extend(true, this._options, d);
        b(this).each(function(g, j) {
            var k = b(this),
                i = k.find(".js-silder-ctrl"),
                l = k.find(".silder-main");
            k.addClass("js-silder");
            if (l.length == 0) {
                var h = b('<div class="silder-scroll"><div class="silder-main"></div></div>');
                l = h.children(".silder-main");
                k.append(l);
                j.silderMain = l
            } else {
                j.silderMain = l;
                if (b(e).length > 1) {
                    (function(m, n) {
                        setTimeout(function() {
                            m._calcSilderMainWH(n)
                        }, 550)
                    })(e, k)
                } else {
                    e._calcSilderMainWH(k)
                }
            }
            if (i.length == 0) {
                i = b('<div class="js-silder-ctrl"></div>');
                k.append(i)
            }
            j.silderCtrl = i;
            j.index = e._options.defaultView || 0;
            if (e._options.data && b.isArray(e._options.data)) {
                (k).addClass("js-silder");
                e._createSilderImg()
            }
            j.imgsLen = j.silderMain.children(".silder-main-img").length;
            var f = k.find(".silder-main-img");
            f.each(function(m, n) {
                if (m != e._options.defaultView) {
                    b(n).css("left", f.eq(0).width())
                }
            })
        });
        this._createControllBtns();
        if (this._options.auto) {
            this._autoPlay()
        }
        b(this).each(function(f, g) {
            e._setControllBtnClass(g.silderCtrl.find(".silder-ctrl-con").eq(e._options.defaultView))
        });
        b(window).on("resize", function() {
            e._calcSilderMainWH()
        })
    };
    a.prototype._calcSilderMainWH = function(g, e, c) {
        if (g && g.length && g.length > 0) {
            var f = g[0],
                h = f.silderMain,
                d = c || h.children(".silder-main-img").eq(0).find("img").height();
            console.log(h.children(".silder-main-img").eq(0).find("img").height()), h.height(d)
        } else {
            b(this).each(function(i, k) {
                var l = k.silderMain,
                    j = c || l.children(".silder-main-img").eq(0).find("img").height();
                l.height(j)
            })
        }
    };
    a.prototype._createSilderImg = function() {
        var c = this,
            d = this._options.data;
        b(c).each(function(f, g) {
            var e = b(this),
                i = this.silderMain,
                h = "";
            b.each(d, function(l, j) {
                var k = j.alt ? j.alt : "";
                silderMainImg = b('<div class="silder-main-img"></div>'), eleA = null, img = b('<img src="' + j.img + '" alt="' + k + '">');
                if (l == 0) {
                    img.on("load", function(m) {
                        c._calcSilderMainWH(b(this).width(), b(this).height())
                    })
                }
                if (j.link) {
                    eleA = b('<a href="' + j.link + '"></a>');
                    silderMainImg.append(eleA.append(img))
                } else {
                    silderMainImg.append(img)
                }
                i.append(silderMainImg)
            })
        })
    };
    a.prototype._createControllBtns = function() {
        var c = this;
        b(c).each(function(h, e) {
            var k = b(this),
                f = this.silderMain,
                l = this.silderCtrl,
                m = f.children(".silder-main-img").length,
                g = 0,
                d = "";
            if (c._options.sideCtrl) {
                d += '<span class="silder-ctrl-prev"><span><</span></span>'
            }
            if (c._options.bottomCtrl) {
                for (; g < m; g++) {
                    var j = '<span class="silder-ctrl-con"><span>' + (g + 1) + "</span></span>";
                    d += j
                }
            }
            if (c._options.sideCtrl) {
                d += '<span class="silder-ctrl-next"><span>></span></span>'
            }
            l.append(b(d))
        });
        this._ctrlBtnBindEvents()
    };
    a.prototype._ctrlBtnBindEvents = function() {
        var c = this;
        b(c).each(function(d, e) {
            this.silderCtrl.children().on("click", function() {
                var f = b(e).width(),
                    h = e.silderMain.children(".silder-main-img");
                if (b(this).hasClass("silder-ctrl-next")) {
                    c._play(b(e))
                } else {
                    if (b(this).hasClass("silder-ctrl-prev")) {
                        a.animate(h[e.index], {
                            "left": f
                        }, null, c._options.speed);
                        e.index -= 1;
                        if (e.index < 0) {
                            e.index = e.imgsLen - 1
                        }
                        h[e.index].style.left = -f + "px";
                        a.animate(h[e.index], {
                            "left": 0
                        }, null, c._options.speed);
                        c._setControllBtnClass(b(this).parent().find(".silder-ctrl-con").eq(e.index))
                    } else {
                        var g = b(this).children("span").html() * 1 - 1;
                        if (g > e.index) {
                            a.animate(h[e.index], {
                                "left": -f
                            }, null, c._options.speed);
                            h[g].style.left = f + "px"
                        } else {
                            if (g < e.index) {
                                a.animate(h[e.index], {
                                    "left": f
                                }, null, c._options.speed);
                                h[g].style.left = -f + "px"
                            }
                        }
                        a.animate(h[g], {
                            "left": 0
                        });
                        c._setControllBtnClass(b(this));
                        e.index = g
                    }
                }
            })
        })
    };
    a.prototype._play = function(c) {
        var f = this,
            d = c[0],
            g = d.imgsLen,
            e = c.width(),
            h = d.silderMain.children(".silder-main-img");
        a.animate(h.eq(d.index)[0], {
            "left": -e
        }, null, this._options.speed);
        d.index += 1;
        if (d.index > d.imgsLen - 1) {
            d.index = 0
        }
        h.eq(d.index)[0].style.left = e + "px";
        a.animate(h.eq(d.index)[0], {
            "left": 0
        }, null, this._options.speed);
        this._setControllBtnClass(d.silderCtrl.find(".silder-ctrl-con").eq(d.index))
    };
    a.prototype._autoPlay = function() {
        var e = this,
            d = b(e),
            c = isNaN(e.interval * 1) ? 3000 : e.interval;
        if (e._options.auto) {
            d.each(function(g, h) {
                clearInterval(this.timer);
                var f = b(this);
                this.timer = setInterval(function() {
                    e._play(f)
                }, c);
                f.hover(function() {
                    clearInterval(this.timer)
                }, function() {
                    clearInterval(this.timer);
                    this.timer = setInterval(function() {
                        e._play(f)
                    }, c)
                })
            })
        }
    };
    a.prototype._setControllBtnClass = function(d) {
        var c = typeof this._options.activeClass != "string" ? "active" : this._options.activeClass;
        d.addClass(c).siblings(".silder-ctrl-con").removeClass(c)
    };
    a.animate = function(g, e, c, f) {
        var d = this;
        clearInterval(g.timer);
        g.timer = setInterval(function() {
            var i = true;
            for (var h in e) {
                var k = parseInt(b(g).css(h)),
                    j = (parseInt(e[h]) - k) / 10;
                j = j > 0 ? Math.ceil(j) : Math.floor(j);
                if (k != e[h]) {
                    i = false
                }
                if (h == "zIndex") {
                    g.style.zIndex = e[h]
                } else {
                    g.style[h] = k + j + "px"
                }
            }
            if (i) {
                clearInterval(g.timer);
                if (c) {
                    c.call(window)
                }
            }
        }, f || 20)
    };
    b.silder = function(c, d) {
        c = b(c);
        new a(c, d);
        return c
    };
    b.fn.silder = function(c) {
        console.log(new a(this, c));
        return this
    }
})(jQuery);
</script>

</body>
</html>

文章转自:https://www.jq22.com/webqd5739

扫描二维码推送至手机访问。

版权声明:本文由心定义前端发布,如需转载请注明出处。

本文链接:http://naturevideo.cn/index.php/post/20.html

分享给朋友:

相关文章

ssl证书到期忘记续签了!!!

一直忙没注意ssl证书续签失败了,造成访问风险提示,目前证书已经续期,访问风险提示消除。…

读书摘录《世界尽头的咖啡馆》

读书摘录《世界尽头的咖啡馆》

在生活中,只有你真正了解自己存在的意义。永远不要因为其他人或事失去对自己命运的掌控。要积极地选择自己的人生道路,不然就只能被动接受安排。要学会移走你人生中的高尔夫球。----《世界尽头的咖啡馆》…