1/*! ãã®ãã¡ã¤ã«ã¯UTF-8ã®BOMãªã(UTF-8N)ã§ä¿åãã¦ãã¾ã 2 * 3 * Smooth Scroll 1.0 - jQuery plugin 4 * 5 * Copyright 2016, CrEa Inc. 6 * http://www.creaman.com/ 7 * 8 * Built for jQuery library 9 * http://jquery.com/ 10 */ 11;(function($, window, document, undefined) { 12 'use strict'; 13 14 /** 15 * ãã©ã°ã¤ã³å 16 * 17 * @var string 18 */ 19 var pluginName = 'smoothscroll'; 20 21 /** 22 * ããã©ã«ãè¨å® 23 * 24 * @var object 25 */ 26 var defaults = { 27 // ã«ã¹ã¿ã ãã¼ã¿å±æ§ã»ã¬ã¯ã¿(aã¿ã°ã«ä»ä¸ããdata-**ã¨ãã屿§ã®**ã®é¨å) 28 dataSelector : 'scroll', 29 // ã¹ã¯ãã¼ã«éã®èª¿æ´ç¨ãã¼ã¸ã³(ãã®å¤ã®åã ãå¤ãã¹ã¯ãã¼ã«ãã) 30 margin : 0, 31 // ã¢ãã¡ã¼ã·ã§ã³æé 32 duration : 500, 33 // ã¤ã¼ã¸ã³ã°(ããã©ã«ã㯠"linear" ã¾ã㯠"swing" ã®ã¿æå®å¯ããã®ä»ã®ç¨®é¡ã¯jQuery Easing Pluginãèªã¿è¾¼ããã¨ã§æå®å¯ã«ãªã) 34 easing : 'linear', 35 // URLããã·ã¥ãä»ãããã©ãã 36 updateUrlHash : false, 37 // åºå®ãããã¼ 38 // â»ã»ã¬ã¯ã¿æååãjQueryãªãã¸ã§ã¯ããæå® 39 fixedHeader : null, 40 // ã¹ã¯ãã¼ã«å®äºæã®ã¤ãã³ã 41 callback : function(){} 42 }; 43 44 /** 45 * è¨å® 46 * 47 * @var object 48 */ 49 var settings; 50 51 /** 52 * ã³ã³ã¹ãã©ã¯ã¿ 53 */ 54 function Plugin(element, options) { 55 this.element = element; 56 this.settings = $.extend({}, defaults, options); 57 this._defaults = defaults; 58 this._name = pluginName; 59 this.init(); 60 } 61 62 $.extend(Plugin.prototype, { 63 // åæå 64 init: function(){ 65 if (null != this.settings.fixedHeader) { 66 if (this.settings.fixedHeader instanceof jQuery) { 67 this.settings.fixedHeader = this.settings.fixedHeader; 68 } else if ('string' === typeof this.settings.fixedHeader) { 69 this.settings.fixedHeader = $(this.settings.fixedHeader); 70 } else { 71 throw new TypeError("Argument 'fixedHeader' must be string or jQuery object."); 72 } 73 } 74 if ('undefined' === typeof $(this.element).data(this.settings.dataSelector)) { 75 return; 76 } 77 78 settings = this.settings; 79 80 var isEnabledHtmlScroll = this.isEnabledHtmlScroll; 81 82 var offset = null != this.settings.fixedHeader && 'undefined' != typeof this.settings.fixedHeader && 0 < this.settings.fixedHeader.size() ? this.settings.fixedHeader.outerHeight() : 0; 83 offset -= this.settings.margin; 84 85 $(this.element).on('click', function(){ 86 // ã¢ã³ã«ã¼ã®ã¿ã¼ã²ããè¦ç´ ãåå¨ããªãå ´åã¯htmlè¦ç´ ãæå® 87 var target = $($(this).attr('href')); 88 if (0 >= target.size()) { 89 target = $('html'); 90 } 91 92 // ã¹ã¯ãã¼ã«ãã¸ã·ã§ã³ãåå¾ 93 var position = target.offset().top; 94 position -= offset; 95 96 // ã¹ã¯ãã¼ã«å®è¡ 97 $(isEnabledHtmlScroll ? 'html' : 'body').animate({ 98 scrollTop: position 99 }, settings.duration, settings.easing, settings.callback); 100 101 if (! settings.updateUrlHash) { 102 return false; 103 } 104 }); 105 }, 106 // HTMLè¦ç´ ã®ã¹ã¯ãã¼ã«ãå¯è½ãã©ãããè¿ã 107 isEnabledHtmlScroll: (function(){ 108 var html = $('html'), top = html.scrollTop(); 109 var top = html.scrollTop(); 110 var element = $('<div/>').height(10000).prependTo('body'); 111 html.scrollTop(10000); 112 var result = !! html.scrollTop(); 113 html.scrollTop(top); 114 element.remove(); 115 return result; 116 })() 117 }); 118 119 $.fn[pluginName] = function(options) { 120 return this.each(function(){ 121 if (! $.data(this, 'plugin_' + pluginName)) { 122 $.data(this, 'plugin_' + pluginName, new Plugin(this, options)); 123 } 124 }); 125 }; 126}(jQuery, window, document));
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.