PageSourceSearch

https://www.nishikofu.co.jp/wp_nkofu/wp-content/themes/nkofu_tm/js/jquery.imagefit.js

js nishikofu.co.jp collected 2026-10-08 02:40:08 UTC 7,720 bytes, 201 lines download raw bytes

1/*//////////////////////////*/
2/*//////////////////////////*/
3/*/    JQuery IMAGEFIT     /*/
4/*/         1.0.0          /*/
5/*/       by Periplo       /*/
6/*//////////////////////////*/
7/*//////////////////////////*/
8
9
10(function ($) {
11    $.fn.imagefit = function (options) {
12        //Default setting
13        var opts = $.extend({}, $.fn.imagefit.defaults, options);
14
15        //Public vars
16        var html = $('html');
17        html.data('main', this);
18        html.data('ignore', opts.ignore);
19        html.data('mode', opts.mode);
20        html.data('hor', opts.halign);
21        html.data('ver', opts.valign);
22        html.data('force', opts.force);
23
24        //Private vars
25        var mw = html.data('main').width();
26        var mh = html.data('main').height();
27        var nw = 0,
28            nh = 0;
29        var imgs = 0;
30
31        //Container CSS
32        html.data('main').css('overflow', 'hidden');
33        html.data('main').css('position', 'relative');
34
35        //Look for imgs
36        html.data('main').find('img:not(' + html.data('ignore') + ')').each(function ($i) {
37            var img = $(this);
38            opts.onStart($i, html.data('main'), img)
39            img.load(function () {
40                opts.onLoad($i, html.data('main'), img)
41            });
42            img.error(function () {
43                opts.onError($i, html.data('main'), img)
44            });
45            img.css('position', 'absolute');
46            var iw = $(this).width();
47            var ih = $(this).height();
48            var top = 0;
49            var left = 0;
50            var ratio = 1;
51            var size = [];
52            ++imgs;
53
54            $("<img/>").attr("src", img.attr('src')).load(function () {
55                size['w'] = this.width;
56                size['h'] = this.height;
57                ratio = size['w'] / size['h'];
58
59
60                if (html.data('mode') == 'outside') {
61                    if (mw / mh > iw / ih) {
62                        if (html.data('force') === false && (mw > size['w'] || mh > size['h'])) {
63                            nw = size['w'];
64                            nh = size['h'];
65                            top = Math.round((mh - nh) / 2);
66                            if (html.data('hor') == 'left') {
67                                left = 0;
68                            } else if (html.data('hor') == 'right') {
69                                left = left = Math.round(((mw - nw) / 2) * 2);
70                            } else {
71                                left = Math.round((mw - nw) / 2);
72                            }
73                        } else {
74                            nw = mw;
75                            nh = Math.round((nw * ih) / iw);
76                            top = -Math.abs(Math.round((nh - mh) / 2));
77                        }
78
79
80                        if (html.data('ver') == 'top') {
81                            img.css('top', '0');
82                            img.css('left', left + 'px');
83                        } else if (html.data('ver') == 'bottom') {
84                            img.css('top', (top * 2) + 'px');
85                            img.css('left', left + 'px');
86                        } else {
87                            img.css('top', top + 'px');
88                            img.css('left', left + 'px');
89                        }
90                    } else {
91                        if (html.data('force') === false && (mw > size['w'] || mh > size['h'])) {
92                            nw = size['w'];
93                            nh = size['h'];
94                            top = Math.round((mh - nh) / 2);
95                            left = Math.round((mw - nw) / 2);
96                        } else {
97                            nh = mh;
98                            nw = Math.round((nh * iw) / ih);
99                            left = -Math.abs(Math.round((nw - mw) / 2));
100                        }
101
102
103                        if (html.data('hor') == 'left') {
104                            img.css('top', top + 'px');
105                            img.css('left', '0');
106                        } else if (html.data('hor') == 'right') {
107                            img.css('left', (left * 2) + 'px');
108                            img.css('top', top + 'px');
109                        } else {
110                            img.css('left', left + 'px');
111                            img.css('top', top + 'px');
112                        }
113                    }
114
115                    img.width(nw);
116                    img.height(nh);
117                    img.css('width', nw);
118                    img.css('height', nh);
119                } else if (html.data('mode') == 'inside') {
120                    if (mw / mh > iw / ih) {
121                        if (html.data('force') === false && mw > size['w'] && mh > size['h']) {
122                            nw = size['w'];
123                            nh = size['h'];
124                            top = Math.round((mh - nh) / 2);
125                            left = Math.round((mw - nw) / 2);
126                        } else {
127                            nh = mh;
128                            nw = Math.round((nh * iw) / ih);
129                            left = Math.round((mw - nw) / 2);
130                        }
131
132
133                        img.css('left', left + 'px');
134                        img.css('top', top + 'px');
135                        if (html.data('hor') == 'left') {
136                            img.css('left', '0');
137                        }
138                        if (html.data('ver') == 'top') {
139                            img.css('top', '0');
140                        }
141                        if (html.data('hor') == 'right') {
142                            img.css('left', (left * 2) + 'px');
143                        }
144                        if (html.data('ver') == 'bottom') {
145                            img.css('top', (top * 2) + 'px');
146                        }
147                    } else {
148                        if (html.data('force') === false && mw > size['w'] && mh > size['h']) {
149                            nw = size['w'];
150                            nh = size['h'];
151                            top = Math.round((mh - nh) / 2);
152                            left = Math.round((mw - nw) / 2);
153                        } else {
154                            nw = mw;
155                            nh = Math.round((nw * ih) / iw);
156                            top = Math.round((mh - nh) / 2);
157                        }
158
159
160                        img.css('left', left + 'px');
161                        img.css('top', top + 'px');
162                        if (html.data('hor') == 'left') {
163                            img.css('left', '0');
164                        }
165                        if (html.data('ver') == 'top') {
166                            img.css('top', '0');
167                        }
168                        if (html.data('hor') == 'right') {
169                            img.css('left', (left * 2) + 'px');
170                        }
171                        if (html.data('ver') == 'bottom') {
172                            img.css('top', (top * 2) + 'px');
173                        }
174                    }
175
176                    img.width(nw);
177                    img.height(nh);
178                    img.css('width', nw);
179                    img.css('height', nh);
180                }
181            });
182
183        });
184        console.log('imageFit found ' + imgs + ' images.');
185
186
187    };
188
189
190    $.fn.imagefit.defaults = {
191        ignore: '', // Class name.
192        mode: 'outside', // 'inside'
193        halign: 'center', // 'left', 'right'
194        valign: 'middle', // 'top', 'bottom'
195        force: true, // false,
196        onLoad: null,
197        onError: null,
198        onStart: null
199    };
200
201})(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.