页面引导在用户第一次访问网站能过提供很好的提示, 下面介绍基于react
写的一个页面引导的组件. 演示地址
效果图
Guide组件的实现
可以把<Guide/>
设计成一个容器组件, 因为我们不知道要引导的内容是什么, 通过容器组件的this.props.children
渲染内容
class Guide extends Component {
render () {
return (
<div className="guide-container" ref={e => this.guide = e}>
{this.props.children}
</div>
)
}
}
复制代码
如何获取哪些是要引导的dom
? 可以通过dom的自定义属性, 再通过querySelectorAll
获取
// example
<Guide >
<header data-step="1" data-tip='Welcome to use react-guide'>React Guide</header>
</Guide>
// 获取要引导的dom
this.guide.querySelectorAll('[data-step]')
复制代码
<Guide/>
组件还需要有: 遮罩层、提示框、内容区、语音功能, 4个部分.
遮罩层
遮罩层通过fixed
布局,加个透明度就好了, 通过外面传来的visible
控制显示
class Guide extends Component {
render () {
return (
<div className="guide-container" ref={e => this.guide = e}>
{this.props.children}
{this.props.visible&&<div className="guide-shadow" ref={e => this.sha