jQuery Zoom-Funktion für Content

06/22/2017 08:38 #Metho#1
Hallo, damit seid ihr in der Lage nur den Content und nicht das Element an sich zu zoomen.

Es ist nur eine Basis und soll nur den Aufbau einer solchen Funktionalität zeigen: Sofern ihr prozentuale Werte benötigt oder Werte welche sich verändern müsst ihr das ganze mit Gettern/Settern oder Hooker erweitern.


PHP Code:
jQuery.fn.scaleContent = function() {
    var 
zoom = function() {
        
/* zoom: */
        
if (typeof $(document.documentElement).css('zoom') !== 'undefined') {
            return function(
elementscale) {
                
element.css('zoom'parseFloat(element.css('zoom')) * scale);
            };
        }

        
/* transform-scale: */
        
else {
            return function(
elementscalereverseScalewidthheight) {
                var 
matrix element.css('transform').match(/^matrix\((.*)\)$/);

                if (
matrix) {
                    
matrix matrix[1].split(', ')

                    
matrix[0] = parseFloat(matrix[0]) * scale;
                    
matrix[3] = parseFloat(matrix[3]) * scale;

                    var 
matrix 'matrix(' matrix.join(', ') + ')';
                } else {
                    var 
matrix 'matrix(' scale ', 0, 0, ' scale ', 0, 0)';
                }

                
element.css({
                    
'transform'matrix,

                    
'marginTop''+=' + (height scale height),
                    
'marginRight''+=' + (width scale width),
                    
'marginBottom''+=' + (height scale height),
                    
'marginLeft''+=' + (width scale width),

                    
'borderTopWidth'parseInt(element.css('borderTopWidth')) * reverseScale,
                    
'borderRightWidth'parseInt(element.css('borderRightWidth')) * reverseScale,
                    
'borderBottomWidth'parseInt(element.css('borderBottomWidth')) * reverseScale,
                    
'borderLeftWidth'parseInt(element.css('borderTopWidth')) * reverseScale
                
});
            }
        }
    }();

    return function(
scale) {
        var 
reverseScale scale;

        var 
width this.width();
        var 
height this.height();

        
this.css({
            
'width'width reverseScale,
            
'height'height reverseScale
        
});

        
zoom(thisscalereverseScalewidthheight);
    };

}(); 
Die Funktion lässt sich mittels jQueryObject.scaleContent(float-Wert) aufrufen. Z. B: $(document.documentElement).scaleContent(0.5);