JQ 플러그인 제49: 사진 슬라이딩 윤방

2239 단어
(function($) {
    $.fn.slide = function(option) {
        option = option || {};
        var defaultOption = {
            W: $(window).width(),
            F: 5500,
            T: null,
            sort: 0,
            nextBtn: null,
            prevBtn: null
        }
        var opts = $.extend(defaultOption, option);
        var obj = $(this);
        var picNum = obj.find("img").length;
        var objp = obj.parent();
        function startSlide() {
            opts.T = setInterval(function() {
                opts.sort = (opts.sort % picNum) + 1;
                obj.animate({ left: -opts.W * (opts.sort - 1) }, "slow");
            }, opts.F);
        }
        function stopSlide() {
            clearInterval(opts.T);
        }
        function slideHere() {
            obj.animate({ left: -opts.W * (opts.sort - 1) }, "slow");
        }
        obj.css({ "width": picNum * opts.W, "position": "absolute" }).find("img").css({ "width": opts.W, "height": "auto", "float": "left", "display": "block" });
        var h = obj.height();
        objp.css({ "width": opts.W, "height": h });
        var nexth = opts.nextBtn.height();
        opts.nextBtn.css({ "left": opts.W - 80, "top": (h - nexth) / 2 });
        opts.nextBtn.click(function() {
            //   
            opts.sort = ((opts.sort + 1) % picNum) > 0 ? (opts.sort + 1) % picNum : picNum;
            slideHere();
            stopSlide();
            startSlide();
        });
        var prevh = opts.prevBtn.height();
        opts.prevBtn.css({ "top": (h - prevh) / 2 });
        opts.prevBtn.click(function() {
            //   
            opts.sort = (opts.sort - 1) % picNum > 0 ? (opts.sort - 1) % picNum : picNum;
            slideHere();
            stopSlide();
            startSlide();
        });
        startSlide();
    }
})(jQuery)

상기 코드는 인터넷의 기타 윤방 효과에 대한 재가공이다.
//    
$(function() {
    $(".slides").slide({ prevBtn: $(".previous"), nextBtn: $(".next") });
});

데모 다운로드 페이지

좋은 웹페이지 즐겨찾기