|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/sarfatty/js/ |
Upload File : |
/*
* ppDrag 0.2 - Extremely Fast Drag&Drop for jQuery
* http://ppdrag.ppetrov.com/
*
* Copyright (c) 2008 Peter Petrov (ppetrov AT ppetrov.com)
* Licensed under the LGPL (LGPL-LICENSE.txt) license.
*/
(function($) {
$.fn.ppdrag = function(options) {
if (typeof options == 'string') {
if (options == 'destroy') return this.each(function() {
$.ppdrag.removeEvent(this, 'mousedown', $.ppdrag.start, false);
$.data(this, 'pp-ppdrag', null);
});
}
return this.each(function() {
$.data(this, 'pp-ppdrag', { options: $.extend({}, options) });
$.ppdrag.addEvent(this, 'mousedown', $.ppdrag.start, false);
});
};
$.ppdrag = {
start: function(event) {
if (!$.ppdrag.current) {
$.ppdrag.current = {
el: this,
oleft: parseInt(this.style.left) || 0,
otop: parseInt(this.style.top) || 0,
ox: event.pageX || event.screenX,
oy: event.pageY || event.screenY
};
var current = $.ppdrag.current;
var data = $.data(current.el, 'pp-ppdrag');
if (data.options.zIndex) {
current.zIndex = current.el.style.zIndex;
current.el.style.zIndex = data.options.zIndex;
}
$.ppdrag.addEvent(document, 'mouseup', $.ppdrag.stop, true);
$.ppdrag.addEvent(document, 'mousemove', $.ppdrag.drag, true);
}
if (event.stopPropagation) event.stopPropagation();
if (event.preventDefault) event.preventDefault();
return false;
},
drag: function(event) {
if (!event) var event = window.event;
var current = $.ppdrag.current;
current.el.style.left = (current.oleft + (event.pageX || event.screenX) - current.ox) + 'px';
current.el.style.top = (current.otop + (event.pageY || event.screenY) - current.oy) + 'px';
if (event.stopPropagation) event.stopPropagation();
if (event.preventDefault) event.preventDefault();
return false;
},
stop: function(event) {
var current = $.ppdrag.current;
var data = $.data(current.el, 'pp-ppdrag');
$.ppdrag.removeEvent(document, 'mousemove', $.ppdrag.drag, true);
$.ppdrag.removeEvent(document, 'mouseup', $.ppdrag.stop, true);
if (data.options.zIndex) {
var sortArray = new Array (9);
var indexarray = [0,1,2,3,4,5,6,7,8];
sortArray[0] = parseInt($('#featured1').css('zIndex'));
sortArray[1] = parseInt($('#featured2').css('zIndex'));
sortArray[2] = parseInt($('#featured3').css('zIndex'));
sortArray[3] = parseInt($('#featured4').css('zIndex'));
sortArray[4] = parseInt($('#featured5').css('zIndex'));
sortArray[5] = parseInt($('#featured6').css('zIndex'));
sortArray[6] = parseInt($('#featured7').css('zIndex'));
sortArray[7] = parseInt($('#featured8').css('zIndex'));
sortArray[8] = parseInt($('#featured9').css('zIndex'));
var n = sortArray.length;
for (var i = n - 1; i > 0; i--){
for (var j = 0; j < i; j++){
if (sortArray[j] > sortArray[j+1]){
var t = sortArray[j];
sortArray[j] = sortArray[j+1];
sortArray[j+1] = t;
t = indexarray[j];
indexarray[j] = indexarray[j+1];
indexarray[j+1] = t;
}
}
}
for (var i = 0; i < n+1; i++){
sortArray[indexarray[i]]=i;
}
$('#featured1').css('zIndex', sortArray[0]);
$('#featured2').css('zIndex', sortArray[1]);
$('#featured3').css('zIndex', sortArray[2]);
$('#featured4').css('zIndex', sortArray[3]);
$('#featured5').css('zIndex', sortArray[4]);
$('#featured6').css('zIndex', sortArray[5]);
$('#featured7').css('zIndex', sortArray[6]);
$('#featured8').css('zIndex', sortArray[7]);
$('#featured9').css('zIndex', sortArray[8]);
}
if (data.options.stop) {
data.options.stop.apply(current.el, [ current.el ]);
}
$.ppdrag.current = null;
if (event.stopPropagation) event.stopPropagation();
if (event.preventDefault) event.preventDefault();
return false;
},
addEvent: function(obj, type, fn, mode) {
if (obj.addEventListener)
obj.addEventListener(type, fn, mode);
else if (obj.attachEvent) {
obj["e"+type+fn] = fn;
obj[type+fn] = function() { return obj["e"+type+fn](window.event); }
obj.attachEvent("on"+type, obj[type+fn]);
}
},
removeEvent: function(obj, type, fn, mode) {
if (obj.removeEventListener)
obj.removeEventListener(type, fn, mode);
else if (obj.detachEvent) {
obj.detachEvent("on"+type, obj[type+fn]);
obj[type+fn] = null;
obj["e"+type+fn] = null;
}
}
};
})(jQuery);