首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS获取图片原始宽高

最近在给博客的相册模块做优化,需要知道图片的原始大小,我以前的做法是把图片的真实宽高分别放在data-width和data-height中,效果是达到了,但是总觉得扩展性很低,当不知道图片的大小时,还要一张一张图片的去查看图片信息手动输入图片大小...,很繁琐 获取图片大小: 1.使用innerWidth,innerHeight 使用HTMLImageElement.innerWidth 是可以拿到图片的宽度 但是需要注意的是这里拿到的宽度是图像在CSS...像素中渲染的宽度 也就是说如果图片原始大小1200,使用css或者width属性设置为600,那么这里拿到的宽度为600,显然用innerWidth获取图片原始尺寸是不靠谱的 2.使用document.createElement...document.createElement("img") img.src = "1.jpg" var width = img.width 动态创建一个imgElement,通过给src赋值,最终来获取img的宽和高...需要注意的是在给img的src赋值时,这是一个异步过程,会存在获取img的宽度时值为0(图片还未加载完成),可以在给img赋值之前加上onload事件 var img = document.createElement

6.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    js图片监听onload事件,依然有获取不到宽高的场景

    背景 在实际开发中,移动端页面遇到的,采用正常写法,图片 src赋值写在 onload 事件监听 后面,依然会有拿不到 图片真实宽高的场景,获得的图片宽高都为0,真的是好坑啊。...img = new Image() // 加载完成执行 img.onload = function(){ console.log(img.width,img.height) } // 改变图片的...为了避免图片加载失败或不存在等长场景导致定时器一直执行,可以加一个兜底,比如10秒钟之后自动清除定时器。...var img = new Image() // 改变图片的src img.src = img_url // 定时执行获取宽高 var check = function(){ // 只要任何一方大于...0 // 表示已经服务器已经返回宽高 if (img.width>0 || img.height>0) { clearInterval(set); } } var

    4K20

    javascript 快速获取图片实际大小的宽高

    javascript 快速获取图片实际大小的宽高 简陋的获取图片实际宽高的方式 // 图片地址 var img_url = '13643608813441.jpg' // 创建对象 var img =...宽高都是0的这个结果很正常,因为图片的相关数据都没有被加载前它的宽高默认就是0,我们需要它加载完所有的相关数据再获取宽和高。...改变图片的src img.src = img_url // 判断是否有缓存 if(img.complete){ // 打印 alert('from:complete : width:...从缓存里读取图片的宽高不用说,非常方便快捷,今天我们要解决的是没有缓存而又快速的相比onload更快的方式去获取图片的宽高。...这是一张2560 * 1600大小的图片,各浏览器执行结果都能看到通过快速获取图片大小的方法几乎都在200毫秒以内,而onload至少五秒以上,这差别之大说明快速获取图片宽高非常实用。

    5.6K10

    js获取各种距离和宽高

    浏览器滚动掉的Y距离 鼠标event事件 属性 说明 offsetX 以当前的元素的左上角为原点, 距离元素顶部的距离 offsetY 以当前的元素的左上角为原点, 距离元素左侧的距离 clientX..., 距离页面顶部的距离, 随页面滚动而改变 pageY 以整个页面的左上角为原点, 距离页面左侧的距离, 随页面滚动而改变 screenX 以计算机显示屏屏幕左上角为原点, 距离屏幕顶部的距离 screenY...以计算机显示屏屏幕左上角为原点, 距离屏幕左侧的距离 元素的宽高及各种距离 宽高 属性 说明 clientHeight/clientWidth 包括元素的可视部分的高度/宽度包括width/height...'px', 为字符串类型) 距离 属性 说明 offsetTop/Left 元素距离最近的带有定位(fixed/relative/absolute)的父元素的顶部/左侧的距离 scrollTop/Left...此属性可以获取或者设置对象的最顶部到对象在当前窗口显示的范围内的顶边/左侧的距离,也就是元素滚动条被向下/向右拉动的距离。

    23710

    js获取屏幕以及元素宽高的方法

    一.window相关 网页正文部分上:window.screenTop 网页正文部分左:window.screenLeft 屏幕分辨率的高:window.screen.height 屏幕分辨率的宽:...document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth (包括边线的宽...) 网页可见区域高:document.body.offsetHeight (包括边线的宽) 网页正文全文宽:document.body.scrollWidth 网页正文全文高:document.body.scrollHeight...网页被卷去的高:document.body.scrollTop 网页被卷去的左:document.body.scrollLeft 三.滚动相关 scrollHeight: 获取对象的滚动高度。...相对容器的水平坐标 event.offsetY 相对容器的垂直坐标 六.width/clientWidth/offsetWidth以及height之间区别 width是指可见内容的宽 height是指可见内容的高

    6.9K20

    php getimagesize 获取图片宽高以及后缀

    获取文件宽高在 PHP 中有一个简单函数 getimagesize。只需要传递文件名即可。...563\" height=\"1000\"", "bits": 8, "channels": 3, "mime": "image/jpeg" } 返回结果说明: 索引 0 给出的是图像宽度的像素值...索引 1 给出的是图像高度的像素值 索引 2 给出的是图像的类型,返回的是数字,其中1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel...motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM 索引 3 给出的是一个宽度和高度的字符串...,可以直接用于 HTML 的 标签 索引 bits 给出的是图像的每种颜色的位数,二进制格式 索引 channels 给出的是图像的通道值,RGB 图像默认是 3 索引 mime 给出的是图像的

    1.9K20

    cocos2d-js 粒子系统使用自定义图片,还原原来的图片宽高

    粒子系统使用自定义图片很简单只需要在plist最后一行设置png的名称即可。但是,在实际使用中,发现自定义图片无法使用原来的形状,例如设置了一长条的图片,结果出来确实一个个圆球。...翻了plist和cc.ParticleSystem的定义,没有找到自定义形状的属性,暂且认为cocos2d无法使用自定义图片的原来形状,默认展示都会被压缩为正方形的图,本来一张长条的图被压缩了。...(如果哪位高人有准确说法,请不吝留言告诉我) 但我们可以通过简单的小把戏,绕过这个问题。 为了还原原来的效果,可以初始化之后,使用setScaleX/setScaleY来控制图的大小。...实际上是把整个粒子系统拉伸了,但正好这就是我们需要的效果。 如下方的风效果。如果不设置scaleX,出来的效果是一块一块的白色圆球。 ? ?

    1.2K10

    iOS 计算NSString宽高与计算NSAttributedString的宽高

    开篇 项目有一个客服反馈功能,用到的是聊天列表的形式,这就免不了计算字符串的宽高,由于要给字符串加间距,没办法,只能用 NSAttributedString 所以要计算NSAttributedString...的长宽 计算NSString宽高 计算NSString宽高很简单,代码如下: //返回字符串所占用的尺寸. - (CGSize)sizeWithFont:(UIFont *)font maxSize:(...(包含大小信息) maxSize 是一个最大的距离:如我最大的宽度只让他为200,高度不限,则传入: CGSizeMake(200 , CGFLOAT_MAX) 计算NSAttributedString...宽高 先查看系统API: ?...(包含大小信息) text:将要计算的�字符串 needWidth:将要计算的最大宽度 lineSpacing:行间距大小 当然关于 NSAttributedString 的设置还有很多,不一一列举了

    5.1K30

    TextField的高宽autosize

    大家好,又见面了,我是你们的朋友全栈君。...var t_name:TextField = new TextField; trace(t_name.height); trace(t_name.width); 这样打印出来的高度都是100PX,是系统默认的...如果不设置可能会让父容器宽高变大,遮挡住别的窗口的鼠标事件。 可以简单地使用tf.autoSize=TextFieldAutoSize.LEFT;来解决 这样宽高就会根据文本内容大小来调整了。...如果文本中包括换行符(例如 “\n” 或 “\r”),则会另外调整底边来适合文本的下一行。如果 wordWrap 也设置为 true,则仅调整文本字段的底边,而右边距保持固定。...如果文本中包括换行符(例如 “\n” or “\r”)),则会另外调整底边来适合文本的下一行。如果 wordWrap 也设置为 true,则仅调整文本字段的底边,而左边距保持固定。

    1K10

    图片不变形,宽高不超出父元素的情况下旋转图片

    demo 如题,具体的效果见这里 。做这样的效果的难点在于,计算没旋转前图片的宽,高和旋转后的宽高。 下面来看具体的实现。 实现步骤 让图片在父元素中水平居中,垂直居中显示。我用的是 flex。...我们知道图片在旋转 (2n * 90)度在父元素的宽高是一样的,((2n + 1) * 90) 度在父元素的宽高是一样的。...所以我们只需要两组宽高。 图片的宽和高要满足 不超出父元素 图片不能变形 在上面的条件下,图片的宽高只有有限的值可以选。...在 旋转 (2n * 90) 度的情况下 图片的宽为父元素的宽,高度自适应 图片的高为父元素的高,宽度自适应 在 旋转((2n + 1) * 90) 度的情况下 图片的宽为父元素的高,高度自适应 图片的高为父元素的宽...旋转后,需要从新设置图片宽高。

    2.1K30

    JS判断单、多张图片加载完成

    试想,如果模板中有图片,此时如何判断图片是否加载完成? 在此之前来了解一下jquery的ready与window.onload的区别,ready只是dom结构加载完毕,便视为加载完成。...(此时图片没有加载完毕),onload是指dom的生成和资源完全加载(比如flash、图片)出来后才执行。接下来回到正题,先从单张图片说起。...3、以下内容省略兼容 (2)、单张图片(图片动态生成) //js var xiu = new Image() xiu.src = 'http://www.daqianduan.com/wp-content.../uploads/2014/11/hs-xiu.jpg' xiu.onload = function(){ // 加载完成 } (3)、单张图片(结合ES6 Promise) //js...浅谈web自适应 使用Three.js制作酷炫无比的无穷隧道特效 一个治愈JavaScript疲劳的学习计划 全栈工程师技能大全 WEB前端性能优化常见方法 一小时内搭建一个全栈Web应用框架 干货:

    12.5K20

    js 获取屏幕各种宽高的方法(浏览器兼容)

    屏幕的有效宽高: window.screen.availHeight window.screen.availWidth 网页可见区域宽:document.body.clientWidth  网页可见区域高...:document.body.clientHeight  网页可见区域宽:document.body.offsetWidth (包括边线的宽)  网页可见区域高:document.body.offsetHeight...(包括边线的宽)  网页正文全文宽:document.body.scrollWidth  网页正文全文高:document.body.scrollHeight  网页被卷去的高:document.body.scrollTop...  网页被卷去的左:document.body.scrollLeft  网页正文部分上:window.screenTop  网页正文部分左:window.screenLeft  屏幕分辨率的高:window.screen.height...  屏幕分辨率的宽:window.screen.width  屏幕可用工作区高度:window.screen.availHeight  屏幕可用工作区宽度:window.screen.availWidth

    3.6K100

    html背景图片的设置宽高_网页的背景图片怎么设置

    /imges/boluo.PNG);”> 在css样式表中引入背景图 注意:设置背景图片的元素一定要有具体的宽度和高度,否则会导致背景图片无法显示 2.背景图相关属性的设置 2.1 background-size...:根据自己的需要设置具体的宽和高的值 div{ width: 1000px; height: 680px; border: palevioletred...,背景图不会产生缩放,会被裁切 容器空间大于图片时,在不缩放的前提下尽可能多的重复图片 当容器空间大于图片时: div{ width: 1000px; height...,缩放背景图至容器大小(非等比例缩放) 容器空间大于图片时,随着允许的空间在尺寸上的增长, 被重复的图像将会伸展(没有空隙), 直到有足够的空间来添加一个图像....规定了指定背景图片background-image 属性的原点位置的背景相对区域。

    5.1K10
    领券