今天小编给大家分享一下vue如何判断图片是竖图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
使用JavaScript的Image对象
使用JavaScript中的Image对象可以获取图片的原始宽度和高度,从而判断出图片的方向。
var img = new Image(); img.src = 'img.jpg'; img.onload = function() { if (img.width > img.height) { console.log('横图'); } else { console.log('竖图'); } };
使用CSS的aspect-ratio属性
CSS3新增了aspect-ratio属性,该属性用于设置元素的宽高比。我们可以利用这个属性来判断图片的方向。
img { aspect-ratio: 1/1; /* 宽高比为1:1 */ position: relative; } img::before { content: ''; display: block; padding-bottom: 100%; /* 内容区高度为0,生成一个占位符,避免图片被撑宽 */ } /* 竖图 */ img[aspect-ratio="1/1"]::before { padding-bottom: 133%; /* 内容区高度为0,生成一个占位符,占比为4:3 */ } /* 横图 */ img[aspect-ratio="1/1"]::before { padding-bottom: 75%; /* 内容区高度为0,生成一个占位符,占比为3:4 */ }
使用CSS的@media查询
CSS @media查询可以根据不同的屏幕宽度设置不同的CSS样式。如果我们设置不同的宽高比,就可以根据屏幕方向判断图片是横向还是纵向。
/* 竖图 */ @media (max-aspect-ratio: 3/4) { img { width: 100%; height: auto; } } /* 横图 */ @media (min-aspect-ratio: 4/3) { img { width: auto; height: 100%; } }