博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决使用react-image-lightbox组件,关闭后元素自动滑动问题(tabindex)
阅读量:5786 次
发布时间:2019-06-18

本文共 1531 字,大约阅读时间需要 5 分钟。

这个问题让你有必要深刻的看看tabindex="-1"的原理。

由于这个问题实在不好描述,那就直接上图。

问题如下

解决后

那我是怎么解决的呢?先来看看下面的使用代码。

测试代码

你可以在github上看到:

主要代码

import React, { Component } from 'react'import Lightbox from 'react-image-lightbox'import 'react-image-lightbox/style.css' // This only needs to be imported once in your appconst images = [  '//placekitten.com/1500/500',  '//placekitten.com/4000/3000',  '//placekitten.com/800/1200',  '//placekitten.com/1500/1500']export default class LightboxExample extends Component {  constructor (props) {    super(props)    this.state = {      photoIndex: 0,      isOpen: false    }  }  render () {    const { photoIndex, isOpen } = this.state    return (      
this.setState({ isOpen: true })}> Open Lightbox
{isOpen && (
this.setState({ isOpen: false })} onMovePrevRequest={() => this.setState({ photoIndex: (photoIndex + images.length - 1) % images.length }) } onMoveNextRequest={() => this.setState({ photoIndex: (photoIndex + 1) % images.length }) } /> )}
) }}复制代码

解决这个问题

这个问题就是tabindex的坑,由于底部高度为1000px的div,会有滑动条,而且用了tabindex=-1,react-image-lightbox 也使用了tabindex=-1,于是当关闭lightBox以后,会把焦点移到底部的div,底部div被获得焦点,于是浏览器把它置顶了。

这个问题官方也有答案,但是我真的是找了一天啊!怪我。

官方解决

来看看这个问题的答案吧:

总结

使用reactModalProps={

{ shouldReturnFocusAfterClose: false }} 完美解决,这个属性是react-modal的props。


欢迎访问我的Blog:

转载地址:http://putyx.baihongyu.com/

你可能感兴趣的文章
【转】二叉树的非递归遍历
查看>>
NYOJ283对称排序
查看>>
接连遇到大牛
查看>>
[Cocos2d-x For WP8]矩形碰撞检测
查看>>
自己写spring boot starter
查看>>
花钱删不完负面消息
查看>>
JBPM之JPdl小叙
查看>>
(step6.1.5)hdu 1233(还是畅通工程——最小生成树)
查看>>
Membership三步曲之进阶篇 - 深入剖析Provider Model
查看>>
前端优化及相关要点总结
查看>>
struts2中form提交到action中的中文参数乱码问题解决办法(包括取中文路径)
查看>>
25 个精美的手机网站模板
查看>>
C#反射实例应用--------获取程序集信息和通过类名创建类实例
查看>>
VC中实现文字竖排的简单方法
查看>>
会话标识未更新
查看>>
阿里架构师:程序员必须掌握的几项核心技术能力
查看>>
程序员常用的六大技术博客类
查看>>
Iceworks 2.8.0 发布,自定义你的 React 模板
查看>>
胖哥学SpringMVC:请求方式转换过滤器配置
查看>>
Kotlin 更加优雅的 Builder - 理解 with
查看>>