Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
H5Public
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
CI / CD
CI / CD
流水线
作业
日程
统计图
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
前端开发小组
H5Public
Commits
a48fd09d
提交
a48fd09d
authored
4月 15, 2020
作者:
钟是志
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
网络问卷调查开发
上级
acdc2794
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
63 行增加
和
0 行删除
+63
-0
2331.png
baseComponents/ImageLoader/2331.png
+0
-0
index.js
baseComponents/ImageLoader/index.js
+63
-0
没有找到文件。
baseComponents/ImageLoader/2331.png
0 → 100644
浏览文件 @
a48fd09d
152.0 KB
baseComponents/ImageLoader/index.js
0 → 100644
浏览文件 @
a48fd09d
/***
* H5图片自适应渲染组件利用 img onload事件,未经使用 需要验证
* 钟是志
* 2020年4月15日 15:11:20
*
* */
import
React
from
'react'
;
import
PropTypes
from
'prop-types'
;
import
demoImage
from
'./2331.png'
;
export
default
class
ImageLoader
extends
React
.
Component
{
componentDidMount
()
{
const
{
width
,
height
}
=
this
.
props
;
this
.
image
.
onload
=
()
=>
{
const
{
clientWidth
,
clientHeight
}
=
this
.
image
;
let
isWidthBig
=
clientWidth
>=
clientHeight
;
if
(
isWidthBig
){
// 图片宽更大的时候
this
.
image
.
style
.
width
=
width
;
this
.
image
.
style
.
height
=
'auto'
;
}
else
{
// 图片高更大的时候
this
.
image
.
style
.
width
=
'auto'
;
this
.
image
.
style
.
height
=
height
;
}
this
.
image
.
style
.
visibility
=
'visible'
;
};
this
.
image
.
onerror
=
()
=>
{
this
.
image
.
style
.
visibility
=
'visible'
;
}
}
render
()
{
const
{
width
,
height
,
url
,
divStyle
}
=
this
.
props
;
return
(
<
div
style
=
{{
width
,
height
,
lineHeight
:
height
,
...
divStyle
,
}}
>
<
img
src
=
{
url
}
alt
=
{
'预览图片'
}
style
=
{{
visibility
:
'hidden'
}}
ref
=
{(
image
)
=>
this
.
image
=
image
}
/
>
<
/div>
)
;
}
}
ImageLoader
.
propTypes
=
{
width
:
PropTypes
.
string
.
isRequired
,
// 图片显示的宽
height
:
PropTypes
.
string
.
isRequired
,
// 图片显示的高
url
:
PropTypes
.
string
.
isRequired
,
// 图片src地址
divStyle
:
PropTypes
.
object
,
// 外部div的样式
};
ImageLoader
.
defaultProps
=
{
height
:
'50px'
,
width
:
'100%'
,
url
:
demoImage
,
divStyle
:
{
textAlign
:
'center'
,
margin
:
'0 auto'
,
}
};
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论