mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-30 19:00:09 +00:00 
			
		
		
		
	some experimentation...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									662486266f
								
							
						
					
					
						commit
						080b7ea853
					
				| @ -95,6 +95,8 @@ actions.Actions({ | |||||||
| 		// between ribbons...
 | 		// between ribbons...
 | ||||||
| 		//
 | 		//
 | ||||||
| 		// supported modes:
 | 		// supported modes:
 | ||||||
|  | 		//
 | ||||||
|  | 		// XXX should this be here???
 | ||||||
| 		'ribbon-focus-modes': [ | 		'ribbon-focus-modes': [ | ||||||
| 			'visual',	// select image closest visually
 | 			'visual',	// select image closest visually
 | ||||||
| 			'order',	// select image closest to current in order
 | 			'order',	// select image closest to current in order
 | ||||||
|  | |||||||
| @ -2385,6 +2385,7 @@ module.AutoSingleImage = core.ImageGridFeatures.Feature({ | |||||||
| // XXX add tap/click to focus...
 | // XXX add tap/click to focus...
 | ||||||
| // XXX add pinch-zoom...
 | // XXX add pinch-zoom...
 | ||||||
| // XXX add vertical scroll...
 | // XXX add vertical scroll...
 | ||||||
|  | // XXX disable drag in single image mode unless image is larger than the screen...
 | ||||||
| // XXX BUG: current image indicator gets shown in random places...
 | // XXX BUG: current image indicator gets shown in random places...
 | ||||||
| var DirectControljQ =  | var DirectControljQ =  | ||||||
| module.DirectControljQ = core.ImageGridFeatures.Feature({ | module.DirectControljQ = core.ImageGridFeatures.Feature({ | ||||||
| @ -2478,6 +2479,8 @@ module.DirectControljQ = core.ImageGridFeatures.Feature({ | |||||||
| }) | }) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | // XXX disable drag in single image mode unless image is larger than the screen...
 | ||||||
|  | // XXX do not use this for production -- GSAp has bad license...
 | ||||||
| var DirectControlGSAP =  | var DirectControlGSAP =  | ||||||
| module.DirectControlGSAP = core.ImageGridFeatures.Feature({ | module.DirectControlGSAP = core.ImageGridFeatures.Feature({ | ||||||
| 	title: '', | 	title: '', | ||||||
| @ -2527,6 +2530,8 @@ module.DirectControlGSAP = core.ImageGridFeatures.Feature({ | |||||||
| 		// XXX fast but uses messes up positioning...
 | 		// XXX fast but uses messes up positioning...
 | ||||||
| 		// 		...setting type: 'left' will fix this but make things 
 | 		// 		...setting type: 'left' will fix this but make things 
 | ||||||
| 		// 		really slow (as slow as jQuery.ui.draggable(..))...
 | 		// 		really slow (as slow as jQuery.ui.draggable(..))...
 | ||||||
|  | 		// XXX shifting to using transforms for centering fixes the align
 | ||||||
|  | 		// 		issue but makes the initial move jump...
 | ||||||
| 		['updateRibbon',  | 		['updateRibbon',  | ||||||
| 			function(_, target){ | 			function(_, target){ | ||||||
| 				var that = this | 				var that = this | ||||||
| @ -2536,22 +2541,12 @@ module.DirectControlGSAP = core.ImageGridFeatures.Feature({ | |||||||
| 				if(r.length > 0 && !r.hasClass('draggable')){ | 				if(r.length > 0 && !r.hasClass('draggable')){ | ||||||
| 					r.addClass('draggable') | 					r.addClass('draggable') | ||||||
| 
 | 
 | ||||||
| 					var o | 					var o, scale | ||||||
| 
 | 
 | ||||||
| 					Draggable.create(r, { | 					Draggable.create(r, { | ||||||
| 						type: 'x', | 						type: 'x', | ||||||
| 						onDragStart: function(){ | 						cursor: 'auto', | ||||||
| 							o = r.position().left |  | ||||||
| 						}, |  | ||||||
| 						onDragEnd: function(){ | 						onDragEnd: function(){ | ||||||
| 							var l = r.position().left |  | ||||||
| 							l += o - l |  | ||||||
| 
 |  | ||||||
| 							that.ribbons.preventTransitions(r) |  | ||||||
| 							r[0].style.left = l |  | ||||||
| 							r[0].style.transform = 'translate3d(0, 0, 0)' |  | ||||||
| 							that.ribbons.restoreTransitions(r) |  | ||||||
| 
 |  | ||||||
| 							var c = that.ribbons.getImageByPosition('center', r) | 							var c = that.ribbons.getImageByPosition('center', r) | ||||||
| 							that | 							that | ||||||
| 								.updateRibbon(c) | 								.updateRibbon(c) | ||||||
|  | |||||||
| @ -176,6 +176,7 @@ typeof(require) != 'undefined' && require('nw.gui').Window.get().showDevTools() | |||||||
| <script src="ext-lib/jquery.js"></script> | <script src="ext-lib/jquery.js"></script> | ||||||
| <script src="ext-lib/jquery-ui.js"></script> | <script src="ext-lib/jquery-ui.js"></script> | ||||||
| <script src="ext-lib/jquery.ui.touch-punch.min.js"></script> | <script src="ext-lib/jquery.ui.touch-punch.min.js"></script> | ||||||
|  | <!--script src="ext-lib/jquery.transit.min.js"></script--> | ||||||
| 
 | 
 | ||||||
| <script src="ext-lib/gsap/TweenLite.min.js"></script> | <script src="ext-lib/gsap/TweenLite.min.js"></script> | ||||||
| <script src="ext-lib/gsap/jquery.gsap.min.js"></script> | <script src="ext-lib/gsap/jquery.gsap.min.js"></script> | ||||||
|  | |||||||
| @ -217,6 +217,8 @@ function setElementTransform(elem, offset, scale, duration){ | |||||||
| 	elem = $(elem) | 	elem = $(elem) | ||||||
| 	//var t3d = USE_3D_TRANSFORM ? 'translateZ(0)' : ''
 | 	//var t3d = USE_3D_TRANSFORM ? 'translateZ(0)' : ''
 | ||||||
| 	var t3d = USE_3D_TRANSFORM ? 'translate3d(0,0,0)' : '' | 	var t3d = USE_3D_TRANSFORM ? 'translate3d(0,0,0)' : '' | ||||||
|  | 	//var translate = USE_3D_TRANSFORM ? 'translate3d' : 'translate'
 | ||||||
|  | 	var translate = 'translate' | ||||||
| 
 | 
 | ||||||
| 	if(offset == null){ | 	if(offset == null){ | ||||||
| 		offset = getElementOffset(elem) | 		offset = getElementOffset(elem) | ||||||
| @ -237,9 +239,12 @@ function setElementTransform(elem, offset, scale, duration){ | |||||||
| 		var scale = getElementScale(elem) | 		var scale = getElementScale(elem) | ||||||
| 	} | 	} | ||||||
| 	if(USE_TRANSFORM){ | 	if(USE_TRANSFORM){ | ||||||
| 		var transform = 'translate('+  | 		var transform = translate+'('+  | ||||||
| 				Math.round(offset.left) +'px, '+ | 				Math.round(offset.left) +'px, '+ | ||||||
| 				Math.round(offset.top) +'px) scale('+ scale +') ' + t3d | 				//Math.round(offset.top) +'px'+ (USE_3D_TRANSFORM && ', 0px' || '') +') '
 | ||||||
|  | 				Math.round(offset.top) +'px) ' | ||||||
|  | 			+'scale('+ scale +') ' | ||||||
|  | 			+ t3d | ||||||
| 		elem.css({ | 		elem.css({ | ||||||
| 			'-ms-transform' : transform,  | 			'-ms-transform' : transform,  | ||||||
| 			'-webkit-transform' : transform,  | 			'-webkit-transform' : transform,  | ||||||
| @ -253,7 +258,10 @@ function setElementTransform(elem, offset, scale, duration){ | |||||||
| 			top: '' | 			top: '' | ||||||
| 		}, duration) | 		}, duration) | ||||||
| 	} else { | 	} else { | ||||||
| 		var transform = 'translate(0px, 0px) scale('+ scale +') ' + t3d | 		//var transform = translate+'(0px, 0px'+ (USE_3D_TRANSFORM && ', 0px' || '') +') '
 | ||||||
|  | 		var transform = translate+'(0px, 0px) ' | ||||||
|  | 			+'scale('+ scale +') ' | ||||||
|  | 			+ t3d | ||||||
| 		elem.css({ | 		elem.css({ | ||||||
| 			// NOTE: this will be wrong during a transition, that's why we 
 | 			// NOTE: this will be wrong during a transition, that's why we 
 | ||||||
| 			// 		can pass the pre-calculated offset as an argument...
 | 			// 		can pass the pre-calculated offset as an argument...
 | ||||||
| @ -465,8 +473,8 @@ function stopAnimation(elem){ | |||||||
| 
 | 
 | ||||||
| // XXX account for other transitions...
 | // XXX account for other transitions...
 | ||||||
| // XXX make a sync version...
 | // XXX make a sync version...
 | ||||||
| function setElementOffset(elem, l, t){ | function setElementOffset(elem, l, t, scale){ | ||||||
| 	return setElementTransform(elem, [l, t]) | 	return setElementTransform(elem, [l, t], scale) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -11,6 +11,14 @@ define(function(require){ var module = {} | |||||||
| 
 | 
 | ||||||
| /*********************************************************************/ | /*********************************************************************/ | ||||||
| 
 | 
 | ||||||
|  | // convert JS arguments to Array...
 | ||||||
|  | var args2array = | ||||||
|  | module.args2array = | ||||||
|  | function(args){ | ||||||
|  | 	//return Array.apply(null, args)
 | ||||||
|  | 	return [].slice.call(args) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // Quote a string and convert to RegExp to match self literally.
 | // Quote a string and convert to RegExp to match self literally.
 | ||||||
| var quoteRegExp = | var quoteRegExp = | ||||||
| module.quoteRegExp = | module.quoteRegExp = | ||||||
| @ -67,6 +75,312 @@ function(path){ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | /*********************************************************************/ | ||||||
|  | 
 | ||||||
|  | var _transform_parse = { | ||||||
|  | 	// 2d transforms:
 | ||||||
|  | 	//martix: [],
 | ||||||
|  | 
 | ||||||
|  | 	translate: ['left|0', 'top|0'], | ||||||
|  | 	translateX: ['left'], | ||||||
|  | 	translateY: ['top'], | ||||||
|  | 
 | ||||||
|  | 	scale: [ | ||||||
|  | 		['scale'], | ||||||
|  | 		['scaleX|scale', 'scaleY|scale'], | ||||||
|  | 	], | ||||||
|  | 	scaleX: ['scaleX'], | ||||||
|  | 	scaleY: ['scaleY'], | ||||||
|  | 
 | ||||||
|  | 	rotate: ['rotate'], | ||||||
|  | 	 | ||||||
|  | 	skew: ['skewX', 'skewY'], | ||||||
|  | 	skewX: ['skewX'], | ||||||
|  | 	skewY: ['skewY'], | ||||||
|  | 
 | ||||||
|  | 	// 3d transforms:
 | ||||||
|  | 	//martix3d: [],
 | ||||||
|  | 
 | ||||||
|  | 	translate3d: ['x|0', 'y|0', 'z|0'], | ||||||
|  | 	translateZ: ['z'], | ||||||
|  | 
 | ||||||
|  | 	scale3d: ['scaleX', 'scaleY', 'scaleZ'], | ||||||
|  | 	scaleZ: ['scaleZ'], | ||||||
|  | 
 | ||||||
|  | 	// XXX
 | ||||||
|  | 	//rotate3d: [x, y, z, angle],
 | ||||||
|  | 	// 	rotateX
 | ||||||
|  | 	// 	rotateY
 | ||||||
|  | 	// 	rotateZ
 | ||||||
|  | 	 | ||||||
|  | 	perspective: ['perspective'], | ||||||
|  | } | ||||||
|  | var _transform_parse_rev = {} | ||||||
|  | Object.keys(_transform_parse).forEach(function(func){ | ||||||
|  | 	var args = _transform_parse[func] | ||||||
|  | 
 | ||||||
|  | 	// we got multiple signatures == merge...
 | ||||||
|  | 	if(!(args[0] instanceof Array)){ | ||||||
|  | 		args = [args] | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	args | ||||||
|  | 		// merge lists of args...
 | ||||||
|  | 		.reduce(function(a, b){ return [].concat.call(a, b) }) | ||||||
|  | 		.unique() | ||||||
|  | 		// split alternatives...
 | ||||||
|  | 		.map(function(a){ return a.split(/\|/g) }) | ||||||
|  | 		.forEach(function(a){ | ||||||
|  | 			var arg = a[0] | ||||||
|  | 			var alt = a.slice(1) | ||||||
|  | 
 | ||||||
|  | 			var e = _transform_parse_rev[arg] = _transform_parse_rev[arg] || {} | ||||||
|  | 
 | ||||||
|  | 			e.funcs = e.funcs || [] | ||||||
|  | 			e.funcs.indexOf(func) < 0 && e.funcs.push(func) | ||||||
|  | 
 | ||||||
|  | 			e.alt = e.alt || [] | ||||||
|  | 			// XXX we explicitly support only one alternative now...
 | ||||||
|  | 			e.alt = e.alt.concat(alt).unique() | ||||||
|  | 		}) | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | // XXX get vendor...
 | ||||||
|  | 
 | ||||||
|  | // 
 | ||||||
|  | // 	Set element transform...
 | ||||||
|  | // 	.transform({..})
 | ||||||
|  | // 		-> element
 | ||||||
|  | //
 | ||||||
|  | // 	Get element transform...
 | ||||||
|  | // 	.transform()
 | ||||||
|  | // 	.transform(<attr>[, ...])
 | ||||||
|  | // 	.transform([<attr>, ...])
 | ||||||
|  | // 		-> data
 | ||||||
|  | //
 | ||||||
|  | // Supported transformations:
 | ||||||
|  | // 	x/y
 | ||||||
|  | // 	scale
 | ||||||
|  | // 	scaleX/scaleY
 | ||||||
|  | // 	origin
 | ||||||
|  | // 	originX/originY
 | ||||||
|  | //
 | ||||||
|  | // NOTE: pixel values are converted to numbers and back by default...
 | ||||||
|  | //
 | ||||||
|  | // XXX this will get/set values only on the first element, is this correct???
 | ||||||
|  | // XXX how do we combine translate(..) and translate3d(..)???
 | ||||||
|  | jQuery.fn.transform = function(){ | ||||||
|  | 	var that = this | ||||||
|  | 	var args = args2array(arguments) | ||||||
|  | 
 | ||||||
|  | 	// XXX get the browser prefix...
 | ||||||
|  | 	var prefix = '' | ||||||
|  | 
 | ||||||
|  | 	// normalize...
 | ||||||
|  | 	args = args.length == 0  | ||||||
|  | 			|| typeof(args[0]) == typeof('str') ? args | ||||||
|  | 		: args[0].constructor === Array  | ||||||
|  | 			|| args.length == 1 ? args[0] | ||||||
|  | 		: args | ||||||
|  | 
 | ||||||
|  | 	var elem = $(this)[0] | ||||||
|  | 	var origin_str = elem.style[prefix + 'transformOrigin'] | ||||||
|  | 	var transform_str = elem.style[prefix + 'transform'] | ||||||
|  | 
 | ||||||
|  | 	// build the current state...
 | ||||||
|  | 	// NOTE: we'll need this for both fetching (parsing) and writing 
 | ||||||
|  | 	// 		(checking)...
 | ||||||
|  | 	var transform = {} | ||||||
|  | 	var functions = {} | ||||||
|  | 
 | ||||||
|  | 	// origin...
 | ||||||
|  | 	var origin = origin_str | ||||||
|  | 		.split(/\s+/) | ||||||
|  | 		// XXX add this to transform...
 | ||||||
|  | 
 | ||||||
|  | 	// transform...
 | ||||||
|  | 	transform_str | ||||||
|  | 		// split functions...
 | ||||||
|  | 		.split(/(\w+\([^\)]*)\)/) | ||||||
|  | 		// remove empty strings...
 | ||||||
|  | 		.filter(function(e){ return e.trim().length > 0}) | ||||||
|  | 		// split each function...
 | ||||||
|  | 		.map(function(e){ return e | ||||||
|  | 			// split args...
 | ||||||
|  | 			.split(/\s*[\(,\s]\s*/) | ||||||
|  | 			// cleanup...
 | ||||||
|  | 			.filter(function(e){ return e.trim().length > 0 }) }) | ||||||
|  | 		// build the structure...
 | ||||||
|  | 		.forEach(function(data){ | ||||||
|  | 			var func = data.shift()  | ||||||
|  | 			var args = data | ||||||
|  | 
 | ||||||
|  | 			// XXX do we care about function vendor tags here???
 | ||||||
|  | 			var spec = _transform_parse[func] | ||||||
|  | 
 | ||||||
|  | 			functions[func] = args | ||||||
|  | 
 | ||||||
|  | 			// we do not know this function...
 | ||||||
|  | 			if(spec == null){ | ||||||
|  | 				transform[func] = args | ||||||
|  | 
 | ||||||
|  | 			} else { | ||||||
|  | 				spec = spec[0] instanceof Array ? spec : [spec] | ||||||
|  | 				spec.forEach(function(s){  | ||||||
|  | 					// skip non-matching signatures...
 | ||||||
|  | 					// XXX is this correct???
 | ||||||
|  | 					if(s.length != args.length){ | ||||||
|  | 						return | ||||||
|  | 					} | ||||||
|  | 					s.forEach(function(e, i){  | ||||||
|  | 						// this is for things that have optional arguments
 | ||||||
|  | 						// like scale(..)
 | ||||||
|  | 						// XXX should we treat this in some special way???
 | ||||||
|  | 						if(args[i] == null){ | ||||||
|  | 							return | ||||||
|  | 						} | ||||||
|  | 
 | ||||||
|  | 						var alternatives = e.split(/\|/g) | ||||||
|  | 						var k = alternatives.shift().trim() | ||||||
|  | 
 | ||||||
|  | 						transform[k] = args[i].slice(-2) == 'px'  | ||||||
|  | 								|| /[0-9\.]+/.test(args[i]) ? | ||||||
|  | 							parseFloat(args[i])  | ||||||
|  | 							: args[i]  | ||||||
|  | 					}) | ||||||
|  | 				}) | ||||||
|  | 			} | ||||||
|  | 		}) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	// get data...
 | ||||||
|  | 	if(args.constructor === Array){ | ||||||
|  | 		var res = {} | ||||||
|  | 
 | ||||||
|  | 		// return the full transform...
 | ||||||
|  | 		if(args.length == 0){ | ||||||
|  | 			return transform | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		args.forEach(function(arg){ | ||||||
|  | 			// direct match in shorthand data...
 | ||||||
|  | 			if(arg in transform){ | ||||||
|  | 				res[arg] = transform[arg] | ||||||
|  | 
 | ||||||
|  | 			// try and find an alias...
 | ||||||
|  | 			} else if(arg in _transform_parse_rev){ | ||||||
|  | 				var funcs = _transform_parse_rev[arg].funcs | ||||||
|  | 				var alt = _transform_parse_rev[arg].alt[0] | ||||||
|  | 
 | ||||||
|  | 				// no alternatives...
 | ||||||
|  | 				if(!alt){ | ||||||
|  | 					res[arg] = '' | ||||||
|  | 
 | ||||||
|  | 				// explicit number value...
 | ||||||
|  | 				} else if(/^[0-9\.]+$/.test(alt)){ | ||||||
|  | 					res[arg] = parseFloat(alt) | ||||||
|  | 
 | ||||||
|  | 				// explicit string value...
 | ||||||
|  | 				} else if(/^(['"]).*\1$/.test(alt)){ | ||||||
|  | 					res[arg] = alt.slice(1, -1) | ||||||
|  | 
 | ||||||
|  | 				} else { | ||||||
|  | 					var v = $(that).transform(alt) | ||||||
|  | 					res[arg] = v == '' ? alt : v | ||||||
|  | 				} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 			// collect from function...
 | ||||||
|  | 			} else if(arg in _transform_parse){ | ||||||
|  | 				var v = res[arg] = {} | ||||||
|  | 				_transform_parse[arg].forEach(function(e){ | ||||||
|  | 					var alternatives = e.split(/\|/g) | ||||||
|  | 					var k = alternatives.shift().trim() | ||||||
|  | 
 | ||||||
|  | 					v[k] = transform[k] != null ? transform[k] : '' | ||||||
|  | 				}) | ||||||
|  | 
 | ||||||
|  | 			// don't know about this attr...
 | ||||||
|  | 			} else { | ||||||
|  | 				res[arg] = '' | ||||||
|  | 			} | ||||||
|  | 		}) | ||||||
|  | 
 | ||||||
|  | 		// special case: we asked for a single value...
 | ||||||
|  | 		if(args.length == 1){ | ||||||
|  | 			return res[args[0]] | ||||||
|  | 		} | ||||||
|  | 		return res | ||||||
|  | 	 | ||||||
|  | 	// set data...
 | ||||||
|  | 	} else { | ||||||
|  | 		transform = Object.create(transform) | ||||||
|  | 		Object.keys(args).forEach(function(key){ | ||||||
|  | 			// the changing value already exists...
 | ||||||
|  | 			if(key in transform | ||||||
|  | 					// get one of the shorthand keys...
 | ||||||
|  | 					// NOTE: we might need to pack or re-pack the date but we 
 | ||||||
|  | 					// 		can't decide here...
 | ||||||
|  | 					|| key in _transform_parse_rev | ||||||
|  | 					// got one of the standard keys...
 | ||||||
|  | 					|| key in _transform_parse){ | ||||||
|  | 				transform[key] = args[key] | ||||||
|  | 
 | ||||||
|  | 			// key undefined...
 | ||||||
|  | 			} else { | ||||||
|  | 				console.warn('Ignoring key "%s".', key) | ||||||
|  | 				transform[key] = args[key] | ||||||
|  | 			} | ||||||
|  | 		}) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 		console.log('>>>>', transform) | ||||||
|  | 
 | ||||||
|  | 		// XXX set new values and resolve new functions...
 | ||||||
|  | 		// XXX
 | ||||||
|  | 		 | ||||||
|  | 
 | ||||||
|  | 		// build the value string...
 | ||||||
|  | 		var transform_str = '' | ||||||
|  | 		for(var f in functions){ | ||||||
|  | 			transform_str += f +'(' | ||||||
|  | 				+(functions[f] | ||||||
|  | 					// XXX test if px value...
 | ||||||
|  | 					.map(function(e){ return typeof(e) == typeof(123) ? e + 'px' : e }) | ||||||
|  | 					.join(', '))+') ' | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		console.log(transform_str) | ||||||
|  | 
 | ||||||
|  | 		// XXX STUB
 | ||||||
|  | 		return functions | ||||||
|  | 
 | ||||||
|  | 		// set the values...
 | ||||||
|  | 		elem.style.transform = transform_str | ||||||
|  | 		elem.style.transformOrigin = origin_str | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return $(this) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // shorthands...
 | ||||||
|  | jQuery.fn.scale = function(value){ | ||||||
|  | 	if(value){ | ||||||
|  | 		return $(this).transform({scale: value}) | ||||||
|  | 	} else { | ||||||
|  | 		return $(this).transform('scale') | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | jQuery.fn.origin = function(value){ | ||||||
|  | 	if(value){ | ||||||
|  | 		return $(this).transform({origin: value}) | ||||||
|  | 	} else { | ||||||
|  | 		return $(this).transform('origin') | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| /********************************************************************** | /********************************************************************** | ||||||
| * vim:set ts=4 sw=4 :                                                */ | * vim:set ts=4 sw=4 :                                                */ | ||||||
| return module }) | return module }) | ||||||
|  | |||||||
| @ -1946,8 +1946,12 @@ var RibbonsPrototype = { | |||||||
| 		ribbon | 		ribbon | ||||||
| 			.css({ | 			.css({ | ||||||
| 				left: (rl + ((W-w)/2 + image_offset) - il) / scale, | 				left: (rl + ((W-w)/2 + image_offset) - il) / scale, | ||||||
|  | 				//transform: 'translate3d('
 | ||||||
|  | 				//	+ ((rl + ((W-w)/2 + image_offset) - il) / scale) + 'px, 0px, 0px)'
 | ||||||
| 			}) | 			}) | ||||||
| 
 | 
 | ||||||
|  | 		//setElementOffset(ribbon, ((rl + ((W-w)/2 + image_offset) - il) / scale), 0, 1)
 | ||||||
|  | 
 | ||||||
| 		return this | 		return this | ||||||
| 	}, | 	}, | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user