parent
3747ba928f
commit
6c4d075bd6
@ -0,0 +1,7 @@ |
||||
.tipsy { padding: 5px; font-size: 10px; opacity: 0.8; filter: alpha(opacity=80); background-repeat: no-repeat; background-image: url(../img/jquery-tipsy.gif); } |
||||
.tipsy-inner { padding: 5px 8px 4px 8px; background-color: black; color: white; max-width: 200px; text-align: center; } |
||||
.tipsy-inner { -moz-border-radius:3px; -webkit-border-radius:3px; } |
||||
.tipsy-north { background-position: top center; } |
||||
.tipsy-south { background-position: bottom center; } |
||||
.tipsy-east { background-position: right center; } |
||||
.tipsy-west { background-position: left center; } |
After Width: | Height: | Size: 867 B |
@ -0,0 +1,113 @@ |
||||
/* |
||||
* @name Show Password |
||||
* @descripton
|
||||
* @version 1.3 |
||||
* @requires Jquery 1.5 |
||||
* |
||||
* @author Jan Jarfalk |
||||
* @author-email jan.jarfalk@unwrongest.com |
||||
* @author-website http://www.unwrongest.com
|
||||
* |
||||
* @special-thanks Michel Gratton |
||||
* |
||||
* @licens MIT License - http://www.opensource.org/licenses/mit-license.php
|
||||
*/ |
||||
(function($){ |
||||
$.fn.extend({ |
||||
showPassword: function(c) {
|
||||
|
||||
// Setup callback object
|
||||
var callback = {'fn':null,'args':{}} |
||||
callback.fn = c; |
||||
|
||||
// Clones passwords and turn the clones into text inputs
|
||||
var cloneElement = function( element ) { |
||||
|
||||
var $element = $(element); |
||||
|
||||
$clone = $("<input />"); |
||||
|
||||
// Name added for JQuery Validation compatibility
|
||||
// Element name is required to avoid script warning.
|
||||
$clone.attr({ |
||||
'type' : 'text', |
||||
'class' : $element.attr('class'), |
||||
'style' : $element.attr('style'), |
||||
'size' : $element.attr('size'), |
||||
'name' : $element.attr('name')+'-clone', |
||||
'tabindex' : $element.attr('tabindex') |
||||
}); |
||||
|
||||
return $clone; |
||||
|
||||
}; |
||||
|
||||
// Transfers values between two elements
|
||||
var update = function(a,b){ |
||||
b.val(a.val()); |
||||
}; |
||||
|
||||
// Shows a or b depending on checkbox
|
||||
var setState = function( checkbox, a, b ){ |
||||
|
||||
if(checkbox.is(':checked')){ |
||||
update(a,b); |
||||
b.show(); |
||||
a.hide(); |
||||
} else { |
||||
update(b,a); |
||||
b.hide(); |
||||
a.show(); |
||||
} |
||||
|
||||
}; |
||||
|
||||
return this.each(function() { |
||||
|
||||
var $input = $(this), |
||||
$checkbox = $($input.data('typetoggle')); |
||||
|
||||
// Create clone
|
||||
var $clone = cloneElement($input); |
||||
$clone.insertAfter($input); |
||||
|
||||
// Set callback arguments
|
||||
if(callback.fn){
|
||||
callback.args.input = $input; |
||||
callback.args.checkbox = $checkbox; |
||||
callback.args.clone = $clone; |
||||
} |
||||
|
||||
|
||||
|
||||
$checkbox.bind('click', function() { |
||||
setState( $checkbox, $input, $clone ); |
||||
}); |
||||
|
||||
$input.bind('keyup', function() { |
||||
update( $input, $clone ) |
||||
}); |
||||
|
||||
$clone.bind('keyup', function(){
|
||||
update( $clone, $input ); |
||||
|
||||
// Added for JQuery Validation compatibility
|
||||
// This will trigger validation if it's ON for keyup event
|
||||
$input.trigger('keyup'); |
||||
|
||||
}); |
||||
|
||||
// Added for JQuery Validation compatibility
|
||||
// This will trigger validation if it's ON for blur event
|
||||
$clone.bind('blur', function() { $input.trigger('focusout'); }); |
||||
|
||||
setState( $checkbox, $input, $clone ); |
||||
|
||||
if( callback.fn ){ |
||||
callback.fn( callback.args ); |
||||
} |
||||
|
||||
}); |
||||
} |
||||
}); |
||||
})(jQuery); |
@ -0,0 +1,108 @@ |
||||
// tipsy - Facebook-style tooltip plugin for jQuery
|
||||
// (c) 2008-2009 Jason Frame (jason@onehackoranother.com)
|
||||
// Released under The MIT License.
|
||||
|
||||
(function($) { |
||||
$.fn.tipsy = function(options) { |
||||
|
||||
options = $.extend({}, $.fn.tipsy.defaults, options); |
||||
|
||||
return this.each(function() { |
||||
|
||||
var opts = $.fn.tipsy.elementOptions(this, options); |
||||
|
||||
$(this).hover(function() { |
||||
|
||||
$.data(this, 'cancel.tipsy', true); |
||||
|
||||
var tip = $.data(this, 'active.tipsy'); |
||||
if (!tip) { |
||||
tip = $('<div class="tipsy"><div class="tipsy-inner"/></div>'); |
||||
tip.css({position: 'absolute', zIndex: 100000}); |
||||
$.data(this, 'active.tipsy', tip); |
||||
} |
||||
|
||||
if ($(this).attr('title') || typeof($(this).attr('original-title')) != 'string') { |
||||
$(this).attr('original-title', $(this).attr('title') || '').removeAttr('title'); |
||||
} |
||||
|
||||
var title; |
||||
if (typeof opts.title == 'string') { |
||||
title = $(this).attr(opts.title == 'title' ? 'original-title' : opts.title); |
||||
} else if (typeof opts.title == 'function') { |
||||
title = opts.title.call(this); |
||||
} |
||||
|
||||
tip.find('.tipsy-inner')[opts.html ? 'html' : 'text'](title || opts.fallback); |
||||
|
||||
var pos = $.extend({}, $(this).offset(), {width: this.offsetWidth, height: this.offsetHeight}); |
||||
tip.get(0).className = 'tipsy'; // reset classname in case of dynamic gravity
|
||||
tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).appendTo(document.body); |
||||
var actualWidth = tip[0].offsetWidth, actualHeight = tip[0].offsetHeight; |
||||
var gravity = (typeof opts.gravity == 'function') ? opts.gravity.call(this) : opts.gravity; |
||||
|
||||
switch (gravity.charAt(0)) { |
||||
case 'n': |
||||
tip.css({top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-north'); |
||||
break; |
||||
case 's': |
||||
tip.css({top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-south'); |
||||
break; |
||||
case 'e': |
||||
tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}).addClass('tipsy-east'); |
||||
break; |
||||
case 'w': |
||||
tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}).addClass('tipsy-west'); |
||||
break; |
||||
} |
||||
|
||||
if (opts.fade) { |
||||
tip.css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 0.8}); |
||||
} else { |
||||
tip.css({visibility: 'visible'}); |
||||
} |
||||
|
||||
}, function() { |
||||
$.data(this, 'cancel.tipsy', false); |
||||
var self = this; |
||||
setTimeout(function() { |
||||
if ($.data(this, 'cancel.tipsy')) return; |
||||
var tip = $.data(self, 'active.tipsy'); |
||||
if (opts.fade) { |
||||
tip.stop().fadeOut(function() { $(this).remove(); }); |
||||
} else { |
||||
tip.remove(); |
||||
} |
||||
}, 100); |
||||
|
||||
}); |
||||
|
||||
}); |
||||
|
||||
}; |
||||
|
||||
// Overwrite this method to provide options on a per-element basis.
|
||||
// For example, you could store the gravity in a 'tipsy-gravity' attribute:
|
||||
// return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' });
|
||||
// (remember - do not modify 'options' in place!)
|
||||
$.fn.tipsy.elementOptions = function(ele, options) { |
||||
return $.metadata ? $.extend({}, options, $(ele).metadata()) : options; |
||||
}; |
||||
|
||||
$.fn.tipsy.defaults = { |
||||
fade: false, |
||||
fallback: '', |
||||
gravity: 'n', |
||||
html: false, |
||||
title: 'title' |
||||
}; |
||||
|
||||
$.fn.tipsy.autoNS = function() { |
||||
return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n'; |
||||
}; |
||||
|
||||
$.fn.tipsy.autoWE = function() { |
||||
return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w'; |
||||
}; |
||||
|
||||
})(jQuery); |
Loading…
Reference in new issue