diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..63d2d62 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.DS_Store + +# Folders +node_modules diff --git a/contain-element.min.js b/contain-element.min.js index 2b5737a..506510f 100644 --- a/contain-element.min.js +++ b/contain-element.min.js @@ -1,9 +1 @@ - -function containElement(options){var scaleFactor=1;var element=document.getElementById(options.id);var elementWidth=options.width||element.offsetWidth;var elementHeight=options.height||element.offsetHeight;if(element.style.position!='absolute') -element.style.position='absolute';if(element.parentElement.style.overflow!='hidden') -element.parentElement.style.overflow='hidden';if(element.parentElement.style.position!='relative'&&element.parentElement.style.position!='absolute'&&element.parentElement.style.position!='fixed') -element.parentElement.style.position='relative';function scaleElement(){var parentWidth=element.parentElement.offsetWidth;var parentHeight=element.parentElement.offsetHeight;if((parentWidth)&&(parentHeight)){if(parentWidth>((parentHeight/(elementHeight*scaleFactor))*(elementWidth*scaleFactor))) -scaleFactor=(parentWidth/elementWidth);else -scaleFactor=(parentHeight/elementHeight);element.style.width=(elementWidth*scaleFactor)+'px';element.style.height=(elementHeight*scaleFactor)+'px';if(parentWidth<(elementWidth*scaleFactor)){switch(options.halign){case'left':element.style.left=0+'px';break;case'right':element.style.left=(0-((elementWidth*scaleFactor)-parentWidth))+'px';break;default:element.style.left=(0-(((elementWidth*scaleFactor)-parentWidth)/2))+'px';}}else{element.style.left=0+'px';} -if((elementHeight*scaleFactor)>parentHeight){switch(options.valign){case'top':element.style.top=0+'px';break;case'bottom':element.style.top=(0-((elementHeight*scaleFactor)-parentHeight))+'px';break;default:element.style.top=(0-(((elementHeight*scaleFactor)-parentHeight)/2))+'px';}}else{element.style.top=0+'px';}}else{window.setTimeout(scaleElement,30);}} -scaleElement();window.onload=function(event){scaleElement();};window.onresize=function(event){scaleElement();};screen.addEventListener('orientationchange',function(){scaleElement();});} +function containElement(e){function t(){var s=i.parentElement.offsetWidth,a=i.parentElement.offsetHeight;if(s&&a){if(n=s>a/(o*n)*l*n?s/l:a/o,i.style.width=l*n+"px",i.style.height=o*n+"px",l*n>s)switch(e.halign){case"left":i.style.left="0px";break;case"right":i.style.left=0-(l*n-s)+"px";break;default:i.style.left=0-(l*n-s)/2+"px"}else i.style.left="0px";if(o*n>a)switch(e.valign){case"top":i.style.top="0px";break;case"bottom":i.style.top=0-(o*n-a)+"px";break;default:i.style.top=0-(o*n-a)/2+"px"}else i.style.top="0px"}else window.setTimeout(t,30)}var n=1,i=document.getElementById(e.id),l=e.width||i.offsetWidth,o=e.height||i.offsetHeight;"absolute"!=i.style.position&&(i.style.position="absolute"),"hidden"!=i.parentElement.style.overflow&&(i.parentElement.style.overflow="hidden"),"relative"!=i.parentElement.style.position&&"absolute"!=i.parentElement.style.position&&"fixed"!=i.parentElement.style.position&&(i.parentElement.style.position="relative"),t(),window.onload=function(e){t()},window.onresize=function(e){t()},screen.addEventListener("orientationchange",function(){t()})} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..600da95 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,12 @@ +var gulp = require('gulp'); +var ugly = require('gulp-uglify'); +var concat = require('gulp-concat'); + +gulp.task('min', function() { + return gulp.src('contain-element.js') + .pipe(ugly()) + .pipe(concat('contain-element.min.js')) + .pipe(gulp.dest('./')); +}); + +gulp.task('default', ['min']); diff --git a/package.json b/package.json new file mode 100644 index 0000000..54e817b --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "devDependencies": { + "gulp": "^3.9.0", + "gulp-concat": "^2.6.0", + "gulp-uglify": "^1.2.0" + } +}