src/extensions/default/InlineTimingFunctionEditor/BezierCurveEditor.js
function (element) {
            var p = this.padding,
                w = this.canvas.width,
                h = this.canvas.height * 0.5;

            // Convert padding percentage to actual padding
            p = p.map(function (a, i) {
                return a * ((i % 2) ? w : h);
            });

            return [
                this.prettify((parseInt($(element).css("left"), 10)    - p[3]) / (w + p[1] + p[3])),
                this.prettify((h - parseInt($(element).css("top"), 10) - p[2]) / (h - p[0] - p[2]))
            ];
        }
function (element) {
            var p = this.padding,
                w = this.canvas.width,
                h = this.canvas.height * 0.5;

            // Convert padding percentage to actual padding
            p = p.map(function (a, i) {
                return a * ((i % 2) ? w : h);
            });

            return [
                this.prettify((parseInt($(element).css("left"), 10)    - p[3]) / (w + p[1] + p[3])),
                this.prettify((h - parseInt($(element).css("top"), 10) - p[2]) / (h - p[0] - p[2]))
            ];
        }
function ( element ) { var p = this . padding , w = this . canvas . width , h = this . canvas . height * 0.5 ; // Convert padding percentage to actual padding p = p . map ( function ( a , i ) { return a * ( ( i % 2 ) ? w : h ) ; } ) ; return [ this . prettify ( ( parseInt ( $ ( element ) . css ( "left" ) , 10 ) - p [ 3 ] ) / ( w + p [ 1 ] + p [ 3 ] ) ) , this . prettify ( ( h - parseInt ( $ ( element ) . css ( "top" ) , 10 ) - p [ 2 ] ) / ( h - p [ 0 ] - p [ 2 ] ) ) ] ; }
Get CSS left, top offsets for endpoint handle

@param {Element} element Endpoint handle <button> element
@return {Array.string[2]}
Get CSS left top offsets for endpoint handle