JS控制图片宽度,当高度太高,宽度居然自己变?

这是Jquery:<scriptsrc="jquery-3.3.1.js"></script><script>$(document).ready(function(){$... 这是Jquery: <script src="jquery-3.3.1.js"></script> <script> $(document).ready(function () { $("img").css("width", screen.availWidth + "px"); }); $(document).ready(function () { $("img").css("height", "700px");//这行是关键,运行为图一。当这行都注释,结果是//图二 }); </script> <style> * { margin: 0; padding: 0; border: 0; } </style><body> <img src='任意一张图片,宽度很大,高度很大'></body>
这两个图片是Google浏览器的调试。body和img宽度一模一样都是availWidth。但是问题的图二明显有滚动条,超出了可用宽度。
注意:高度没超过availHeight,宽度就不会超过availWidth。
展开
 我来答
网海1书生
科技发烧友

2018-08-16 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
这是img标签的特性决定的,如果width和height属性只设置其中一个,另一个会自动等比例缩放,也就是说图片会自动保持其原始的宽高比,只有width和height同时设置,图片才会产生压扁或拉高的变形效果。
追问
我图片的宽度都是screen.availWidth。但是图二的宽度似乎超出了屏幕。
追答
首先,当高度超出availHeight,就会自动出现纵向的滚动条,这个不用解释吧?

然后,纵向的滚动条肯定要占用位置,这样它就会自动覆盖掉图片最右边的一小部分,这个也能理解吧?
既然图片被覆盖掉了,那么横向滚动条也就跟着出来了啊,不对吗?
也就是说,图片的宽度实际上没有改变,仍然是availWidth,被骗的只是你的眼睛而已!

把body的滚动条取消掉你就会明白了:
body {overflow:hidden}
从尾和4
2018-08-16 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:76
采纳率:65%
帮助的人:34.6万
展开全部
img宽度和高度只设置一个的话,它是等比例缩放的,比如说只设置了宽度,那么就会按照原来的宽度和设置的宽度等比例来缩放,就像是放大和缩小,图片不会变形,如果宽度和高度都设置了,才会按照设置的拉伸,这种图片会变形
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式