-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnitips.min.js
1 lines (1 loc) · 4.35 KB
/
nitips.min.js
1
(function(a,b,c){"use strict",a.fn.nitips=function(c){var d={activation:"hover",position:"top",showDelay:0,hideDelay:0,fadeIn:0,fadeOut:0,attribute:!1,hand:!1,loadUrl:!1,autoShow:!1,keepAlive:!1,permanent:!1,edgeOffset:5,arrowSize:10,rounding:8,padding:8,closer:"x",baseCssClass:"nitips-tip"};return this.each(function(){function o(){f.css("z-index","99999")}function p(){e.keepAlive||e.permanent?f.css("z-index","99980"):f.css("z-index","99990")}function q(){var c=a(b),d=g.position(),h=e.position,i=d.top+parseInt(g.css("marginTop"),10),j=d.left+parseInt(g.css("marginLeft"),10),l=g.outerWidth(),m=g.outerHeight(),n=f.outerWidth(),o=f.outerHeight(),p=c.height(),q=c.width(),r=c.scrollTop(),s=c.scrollLeft();e.position==="top"?g.offset().top-o-e.arrowSize-e.edgeOffset-r<0&&(h="bottom"):e.position==="bottom"?g.offset().top+m+e.arrowSize+e.edgeOffset+o-r>p&&(h="top"):e.position==="left"?g.offset().left-n-e.arrowSize-e.edgeOffset-s<0&&(h="right"):g.offset().left+l+e.arrowSize+e.edgeOffset+n-s>q&&(h="left"),h!==k&&f.removeClass("nitips-"+k).addClass("nitips-"+h),k=h,h==="top"?f.css("top",i-o-e.arrowSize-e.edgeOffset).css("left",j+l/2-e.arrowSize*2):h==="bottom"?f.css("top",i+m+e.arrowSize+e.edgeOffset).css("left",j+l/2-e.arrowSize*2):h==="left"?f.css("top",i+m/2-o/2).css("left",j-n-e.arrowSize-e.edgeOffset):f.css("top",i+m/2-o/2).css("left",j+l+e.arrowSize+e.edgeOffset)}function r(){l&&(b.clearTimeout(l),l=!1),m&&(b.clearTimeout(m),m=!1)}function s(){h||(h=!0,q(),o(),e.fadeIn>0?f.fadeIn(e.fadeIn):f.show())}function t(){h&&(h=!1,e.fadeOut>0?f.fadeOut(e.fadeOut):f.hide(),p())}function u(){r(),e.showDelay!==0?l=b.setTimeout(function(){s()},e.showDelay):s()}function v(){r(),e.hideDelay!==0?m=b.setTimeout(function(){t()},e.hideDelay):t()}var e=a.extend({},d,c),f=a(this),g=!1,h=!1,i=!0,j=!0,k=!1,l,m,n;f.is("[data-nitips-activation]")&&(e.activation=f.attr("data-nitips-activation")),f.is("[data-nitips-position]")&&(e.position=f.attr("data-nitips-position")),f.is("[data-nitips-showDelay]")&&(e.showDelay=f.attr("data-nitips-showDelay")),f.is("[data-nitips-hideDelay]")&&(e.hideDelay=f.attr("data-nitips-hideDelay")),f.is("[data-nitips-fadeIn]")&&(e.fadeIn=f.attr("data-nitips-fadeIn")),f.is("[data-nitips-fadeOut]")&&(e.fadeOut=f.attr("data-nitips-fadeOut")),f.is("[data-nitips-attribute]")&&(e.attribute=f.attr("data-nitips-attribute")),f.is("[data-nitips-hand]")&&(e.hand=a(f.attr("data-nitips-hand"))),f.is("[data-nitips-loadUrl]")&&(e.loadUrl=f.attr("data-nitips-loadUrl")),f.is("[data-nitips-keepAlive]")&&(e.keepAlive=!0),f.is("[data-nitips-autoShow]")&&(e.autoShow=!0),f.is("[data-nitips-permanent]")&&(e.permanent=!0),f.is("[data-nitips-edgeOffset]")&&(e.edgeOffset=f.attr("data-nitips-edgeOffset")),f.is("[data-nitips-arrowSize]")&&(e.arrowSize=f.attr("data-nitips-arrowSize")),f.is("[data-nitips-rounding]")&&(e.rounding=f.attr("data-nitips-rounding")),f.is("[data-nitips-padding]")&&(e.padding=f.attr("data-nitips-padding")),f.is("[data-nitips-closer]")&&(e.closer=f.attr("data-nitips-closer")),f.is("[data-nitips-baseCssClass]")&&(e.baseCssClass=f.attr("data-nitips-baseCssClass")),g=e.hand,k=e.position,e.attribute?(g=a(this),f=a("<div>"+g.attr(e.attribute)+"</div>"),g.after(f)):(f=a(this),g||(g=f.prev())),f.hide().addClass(e.baseCssClass).addClass("nitips-"+e.position),g.addClass("nitips-hand"),e.keepAlive||e.permanent?f.css("z-index","99980"):f.css("z-index","99990"),e.autoShow&&a(b).load(function(){u(),p()}),f.on("resize",function(){q()}),e.loadUrl&&g.one("mouseover",function(b){if(e.loadUrl.match("^http")){var c=a('<iframe style="border: 0; width: 100%; height: 100%;" src="'+e.loadUrl+'"></iframe>');c.ready(function(){c.width(f.width()).height(f.height()),f.html(c)})}else a.get(e.loadUrl,function(a){f.html(a),u()})}),e.activation==="hover"?(g.on("mouseover",function(a){j=!1,u()}),g.on("mouseout",function(a){j=!0,!e.keepAlive&&!e.permanent?v():j&&i&&p()}),e.hideDelay>0&&(f.on("mouseover",function(a){i=!1,u()}),f.on("mouseout",function(a){i=!0,!e.keepAlive&&!e.permanent?v():j&&i&&p()}))):e.activation==="focus"?g.on("focusin",function(){u()}).on("focusout",function(){v()}):e.activation==="click"&&(e.showDelay=0,e.hideDelay=0,g.on("click",function(){return h?e.permanent||v():u(),!1})),e.keepAlive&&!e.permanent&&(e.activation!=="click"&&(e.hideDelay=0,f.on("click",function(a){v()})),f.css("cursor","pointer"),n=a('<div class="nitips-close">'+e.closer+"</div>"),f.prepend(n))})}})(jQuery,window,document)