react实现一个优雅的图片占位模块组件详解


Posted in Javascript onOctober 30, 2017

前言

发现项目中的图片占位模块写得很不优雅,找了一圈,发现没找到自己想要的图片组件。于是自己写了一个,写了一个还算优雅的图片组件:mult-transition-image-view

截图:

react实现一个优雅的图片占位模块组件详解

功能简介

首先它是一个比较优雅的组件:用起来不头疼。

第二个它能实现以下场景:

  • 没有图片的时候,显示一个占位图(可以直接用css来写背景,方便自定义)
  • 希望在加载大图的时候,能先占位一张小图,然后再过渡到一张大图。类似上面的截图。

使用方法

安装npm 包

npm install react-mult-transition-image-view

代码部分

import ImageBoxView from 'react-mult-transition-image-view'

 <ImageBoxView img="#你的图片#"/>

当然 你可以设置其他属性

<ImageBoxView
 width="320" // 
 height="200" // 宽高,会转化成 style 属性
 mode="style" // 使用 style 去显示图片(默认:img)
 img="#你要的图片#"/> // 图片路径

小图过渡到大图的效果

<ImageBoxView
 animate="fade" // 会触发动画样式(见下方样式部分 )
 mode="style" // 使用 style 去显示图片(默认:img)
 img={['#小图地址#', '#大图地址#']}/> // img 传入数组形式。

实现随机显示图片

当有很多图片的时候,可以让图片随机时间显示,增加图片显示出来的体验
(一起出来真的有点丑)

<ImageBoxView
 delay="100" // 延迟加载(默认:0),可以传入一个随机数
 img="#你要的图片#"/> // 图片路径

幻灯片效果

因为 img 属性可以传入数组,所以 理论上可以加载很多图,实现幻灯片效果。
使用 wait 属性 来设置,每张图片加载后的等待时间

<ImageBoxView
 animate="fade" // 会触发动画样式(见下方样式部分 )
 wait="100" // 每张图片加载完后,继续加载下一张的时间(默认:0)
 mode="style" // 使用 style 去显示图片(默认:img)
 img={['#图片1#', '#图片2#', '#图片3#']}/> // img 传入数组形式。

样式部分

别忘了样式部分

.c-img-box{
 display:inline-block;
 width: 320px;
 height: 200px;
 background: #f7f6f5;
 position: relative;
 .img-hold{
 overflow: hidden;
 background-size: cover;
 background-repeat: no-repeat;
 background-position: center;
 img{
  width:100%;
  height:100%;
 }
 &.img-animate{
  transition: opacity 0.5s;
 }
 }
 
 .img-cover{
 background: url('https://d.2dfire.com/om/images/menulist/7deb58da.default.png') no-repeat center/300px;
 background-color:#f0f0f0;
 }
 
 .img-cover,
 .img-hold,
 .img-hide{
 position: absolute;
 width: 100%;
 height: 100%;
 top:0;
 left:0;
 }
 
 .img-hide{
 opacity: 0;
 }
 
}

TODO

github: https://github.com/qilei0529/react-mult-transition-image-view

本地下载:http://xiazai.3water.com/201710/yuanma/react-mult-transition-image-view(3water.com).rar

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js 变量类型转换常用函数与代码[比较全]
Dec 01 Javascript
Jquery截取中文字符串的实现代码
Dec 22 Javascript
jquery基础教程之deferred对象使用方法
Jan 22 Javascript
js中的事件捕捉模型与冒泡模型实例分析
Jan 10 Javascript
在JavaScript中处理时间之getHours()方法的使用
Jun 10 Javascript
JavaScript中闭包的写法和作用详解
Jun 29 Javascript
canvas实现爱心和彩虹雨效果
Mar 09 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
Oct 19 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
angular 数据绑定之[]和{{}}的区别
Sep 25 Javascript
Vue中qs插件的使用详解
Feb 07 Javascript
详解vue实现坐标拾取器功能示例
Nov 18 Vue.js
ES6 javascript中class类的get与set用法实例分析
Oct 30 #Javascript
原生JS与jQuery编写简单选项卡
Oct 30 #jQuery
简单实现jQuery弹窗效果
Oct 30 #jQuery
Bootstrap栅格系统的使用详解
Oct 30 #Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
Oct 30 #Javascript
用React实现一个完整的TodoList的示例代码
Oct 30 #Javascript
JavaScript实现精美个性导航栏筋斗云效果
Oct 29 #Javascript
You might like
一些php技巧与注意事项分析
2011/02/03 PHP
php中strtotime函数用法详解
2014/11/15 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
jquery 插件学习(三)
2012/08/06 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
javascript 实现动态侧边栏实例详解
2016/11/11 Javascript
详解vue事件对象、冒泡、阻止默认行为
2017/03/20 Javascript
搭建基于express框架运行环境的方法步骤
2018/11/15 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
利用Python开发微信支付的注意事项
2016/08/19 Python
python+opencv轮廓检测代码解析
2018/01/05 Python
Python发展史及网络爬虫
2019/06/19 Python
Django 静态文件配置过程详解
2019/07/23 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
Python内置类型性能分析过程实例
2020/01/29 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
自荐信的禁忌和要点
2013/10/15 职场文书
音乐教育感言
2014/03/05 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技