jquery.VMiddleImg.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. *
  3. * 【jQuery插件】图片垂直水平缩放显示
  4. *
  5. */
  6. (function($){
  7. $.fn.VMiddleImg = function(options) {
  8. var defaults={
  9. "width":null,
  10. "height":null
  11. };
  12. var opts = $.extend({},defaults,options);
  13. return $(this).each(function() {
  14. var $this = $(this);
  15. var objHeight = $this.height(); //图片高度
  16. var objWidth = $this.width(); //图片宽度
  17. var parentHeight = opts.height||$this.parent().height(); //图片父容器高度
  18. var parentWidth = opts.width||$this.parent().width(); //图片父容器宽度
  19. var ratio = objHeight / objWidth;
  20. if (objHeight > parentHeight && objWidth > parentWidth) {
  21. if (objHeight > objWidth) { //赋值宽高
  22. $this.width(parentWidth);
  23. $this.height(parentWidth * ratio);
  24. } else {
  25. $this.height(parentHeight);
  26. $this.width(parentHeight / ratio);
  27. }
  28. objHeight = $this.height(); //重新获取宽高
  29. objWidth = $this.width();
  30. if (objHeight > objWidth) {
  31. $this.css("top", (parentHeight - objHeight) / 2);
  32. //定义top属性
  33. } else {
  34. //定义left属性
  35. $this.css("left", (parentWidth - objWidth) / 2);
  36. }
  37. }
  38. else {
  39. if (objWidth > parentWidth) {
  40. $this.css("left", (parentWidth - objWidth) / 2);
  41. }
  42. $this.css("top", (parentHeight - objHeight) / 2);
  43. }
  44. });
  45. };
  46. })(jQuery);