PageSourceSearch

http://www.sanianishtar.info/wp-content/themes/sanianishtar/js/lean-slider.js?ver=1.0.1

js sanianishtar.info collected 2026-10-02 10:28:12 UTC 5,951 bytes, 177 lines download raw bytes

1/*
2 * Lean Slider v1.0.1
3 * http://dev7studios.com/lean-slider
4 *
5 * Copyright 2012, Dev7studios
6 * Free to use and abuse under the MIT license.
7 * http://www.opensource.org/licenses/mit-license.php
8 */
9
10;(function($) {
11
12    $.fn.leanSlider = function(options) {
13
14        // Set up plugin vars
15        var plugin = this,
16            settings = {},
17            slider = $(this),
18            slides = slider.children(),
19            currentSlide = 0,
20            timer = 0;
21
22        var init = function() {
23            // Set up settings
24            settings = $.extend({}, $.fn.leanSlider.defaults, options);
25
26            // Add inital classes
27            slider.addClass('lean-slider');
28            slides.addClass('lean-slider-slide');
29
30            currentSlide = settings.startSlide;
31            if(settings.startSlide < 0 || settings.startSlide >= slides.length) currentSlide = 0;
32            $(slides[currentSlide]).addClass('current');
33
34            // Set up directionNav
35            if(settings.directionNav && $(settings.directionNav).length){
36                var prevNav = $('<a href="#" class="lean-slider-prev">'+ settings.prevText +'</a>'),
37                    nextNav = $('<a href="#" class="lean-slider-next">'+ settings.nextText +'</a>');
38                if(settings.directionNavPrevBuilder) prevNav = $(settings.directionNavPrevBuilder.call(this, settings.prevText));
39                if(settings.directionNavNextBuilder) nextNav = $(settings.directionNavNextBuilder.call(this, settings.nextText));
40
41                prevNav.on('click', function(e){
42                    e.preventDefault();
43                    plugin.prev();
44                });
45                nextNav.on('click', function(e){
46                    e.preventDefault();
47                    plugin.next();
48                });
49
50                $(settings.directionNav).append(prevNav);
51                $(settings.directionNav).append(nextNav);
52            }
53
54            // Set up controlNav
55            if(settings.controlNav && $(settings.controlNav).length){
56                slides.each(function(i){
57                    var controlNav = $('<a href="#" class="lean-slider-control-nav">'+ (i + 1) +'</a>');
58                    if(settings.controlNavBuilder) controlNav = $(settings.controlNavBuilder.call(this, i, $(slides[i])));
59
60                    controlNav.on('click', function(e){
61                        e.preventDefault();
62                        plugin.show(i);
63                    });
64
65                    $(settings.controlNav).append(controlNav);
66                });
67            }
68
69            // Set up pauseOnHover
70            if(settings.pauseOnHover && settings.pauseTime && settings.pauseTime > 0){
71                slider.hover(
72                    function () {
73                        clearTimeout(timer);
74                    },
75                    function () {
76                        doTimer();
77                    }
78                );
79            }
80
81            // Initial processing
82            updateControlNav();
83            doTimer();
84
85            // Trigger the afterLoad callback
86            settings.afterLoad.call(this);
87
88            return plugin;
89        };
90
91        // Process timer
92        var doTimer = function(){
93            if(settings.pauseTime && settings.pauseTime > 0){
94                clearTimeout(timer);
95                timer = setTimeout(function(){ plugin.next(); }, settings.pauseTime);
96            }
97        };
98
99        // Update controlNav
100        var updateControlNav = function(){
101            if(settings.controlNav){
102                $('.lean-slider-control-nav', settings.controlNav).removeClass('active');
103                $($('.lean-slider-control-nav', settings.controlNav).get(currentSlide)).addClass('active');
104            }
105        };
106
107        // Prev
108        plugin.prev = function(){
109            // Trigger the beforeChange callback
110            settings.beforeChange.call(this, currentSlide);
111
112            currentSlide--;
113            if(currentSlide < 0) currentSlide = slides.length - 1;
114            slides.removeClass('current');
115            $(slides[currentSlide]).addClass('current');
116            updateControlNav();
117            doTimer();
118
119            // Trigger the afterChange callback
120            settings.afterChange.call(this, currentSlide);
121        };
122
123        // Next
124        plugin.next = function(){
125            // Trigger the beforeChange callback
126            settings.beforeChange.call(this, currentSlide);
127
128            currentSlide++;
129            if(currentSlide >= slides.length) currentSlide = 0;
130            slides.removeClass('current');
131            $(slides[currentSlide]).addClass('current');
132            updateControlNav();
133            doTimer();
134
135            // Trigger the afterChange callback
136            settings.afterChange.call(this, currentSlide);
137        };
138
139        // Show
140        plugin.show = function(index){
141            // Trigger the beforeChange callback
142            settings.beforeChange.call(this, currentSlide);
143
144            currentSlide = index;
145            if(currentSlide < 0) currentSlide = slides.length - 1;
146            if(currentSlide >= slides.length) currentSlide = 0;
147            slides.removeClass('current');
148            $(slides[currentSlide]).addClass('current');
149            updateControlNav();
150            doTimer();
151
152            // Trigger the afterChange callback
153            settings.afterChange.call(this, currentSlide);
154        };
155
156        // Call constructor
157        return init();
158    };
159
160    // Defaults
161    $.fn.leanSlider.defaults = {
162        pauseTime: 4000,
163        pauseOnHover: true,
164        startSlide: 0,
165        directionNav: 'right',
166        directionNavPrevBuilder: '',
167        directionNavNextBuilder: '',
168        controlNav: '',
169        controlNavBuilder: '',
170        prevText: 'Prev',
171        nextText: 'Next',
172        beforeChange: function(){},
173        afterChange: function(){},
174        afterLoad: function(){}
175    };
176
177})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.