返回顶部
首页 > 资讯 > 前端开发 > JavaScript >js页面引导页的实现思路总结
  • 455
分享到

js页面引导页的实现思路总结

js引导页js新手引导 2023-05-16 14:05:59 455人浏览 独家记忆
摘要

目录实现思路1实现思路2插件实现思路1 采用png格式的方式,然后高亮部分镂空,其它部分采用,如下图所示,简单误差大 其效果如图所示,点击下一步等没法按照图片中的“下一

实现思路1

采用png格式的方式,然后高亮部分镂空,其它部分采用,如下图所示,简单误差大

其效果如图所示,点击下一步等没法按照图片中的“下一步”按钮来操作,就算可以通过方法getBoundinGClientRect来获取,也会存在很大误差。这个思路只能说是一种思路,不太推荐使用,方法简单但不够精确

实现思路2

通过组件包装,外层使用的时候传入对应的数据结构,我自己的页面如下所示,所以数据包含title/content/target/entry/leave等内容,这个可以根据实际情况配置,但是target是必须有的,它主要是需要将其高亮展示,同时在旁边挂上content内容引导。

  const stepData = [{
    title: '组件库和图标',
    content: '从基础组件、自定义业务组件、图标库中拖拽组件或图标到画布区域进行页面编排组装',
    target: '#editPageLeftSideBar',
    entry: () => void,
    leave: () => void
  }]

组件里实现下一步切换的公共逻辑,如果存在不是公共逻辑,可以将方法写在上面stepData里,在组件下一步方法里进行调用。

    const clearCls = () => {
        document.body.querySelectorAll('.guide-highlight').forEach(el => {
          el.classList.remove('guide-highlight')
        })
     }

    const addCls = (target) => {
       target.classList.add('guide-highlight');
    }

    const getTarget = () => {
        const currentStep = props.stepData[state.currentStepIndex]
        return document.querySelector(currentStep.target)
    }
    
    const onGoNext = () => {
        // 清除所有的高亮class, 因为我是通过class样式来控制的
        clearCls()

        // 查找下一步的目标对象
        const currentStep = props.stepData[state.currentStepIndex]
        const $stepTarget = getTarget()

        // 给target添加class
        addCls()

        // 执行其它方法,譬如上面的leave/entry方法
        if (typeof state.currentStep.leave === 'function') {
          state.currentStep.leave()
        }
        if (typeof currentStep.entry === 'function') {
          currentStep.entry()
        }

        // 计算引导容器的位置style

        const windowWidth = window.innerWidth
        const windowHieght = window.innerHeight
         const {
          top: targetTop,
          right: targetRight,
          bottom: targeBottom,
          left: targetLeft,
          width: targetWidth
        } = $stepTarget.getBoundingClientRect()
        const {
          width,
          height
        } = tipRef.value.getBoundingClientRect()
        let placement = 'left'
        if (width > height
          && targeBottom < 0.3 * windowHieght) {
          placement = targeBottom > 0.5 * windowHieght ? 'top' : 'bottom'
        } else {
          placement = targetLeft > 0.5 * windowWidth ? 'left' : 'right'
        }

        let styles = {}

        if (placement === 'bottom') {
          styles = {
            top: `${targeBottom + 10}px`,
            left: `${targetLeft + (targetWidth - width) / 2}px`
          }
        } else if (placement === 'top') {
          styles = {
            top: `${windowHieght - targetTop - height - 10}px`,
            left: `${targetLeft + (targetWidth - width) / 2}px`
          }
        } else if (placement === 'left') {
          styles = {
            top: `${targetTop}px`,
            right: `${windowWidth - targetLeft + 10}px`
          }
        } else if (placement === 'right') {
          styles = {
            top: `${targetTop}px`,
            left: `${targetRight + 10}px`
          }
        }
    }

插件

introjs/driver.js等第三方库

到此这篇关于js页面引导页的实现思路总结的文章就介绍到这了,更多相关js 引导页内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: js页面引导页的实现思路总结

本文链接: https://lsjlt.com/news/210183.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • js页面引导页的实现思路总结
    目录实现思路1实现思路2插件实现思路1 采用png格式的方式,然后高亮部分镂空,其它部分采用,如下图所示,简单误差大 其效果如图所示,点击下一步等没法按照图片中的“下一...
    99+
    2023-05-16
    js 引导页 js新手引导
  • Android引导页面的简单实现
    第一次进入应用的时候,都会有一个引导页面,引导页面的实现起来也很简单,实现的方式也有很多,下面是自己写的一个引导页面的效果,大致的实现思路为: 最外层是一个Fragment...
    99+
    2022-06-06
    Android
  • SwiftUI 引导页界面实现示例
    目录引言页面分析-元素构成实战编程-创建项目实战编程-引导图片实战编程-引导文字实战编程-引导按钮实战编程-轮博滚动整体效果-预览本章小结引言 当用户首次启用App时,客户端应用常常...
    99+
    2024-04-02
  • ViewPager实现漂亮的引导页
    废话就不多说了,直接上效果图和代码fry.Activity01package fry;import java.util.ArrayList;import java.util.Collection;import java.util.Itera...
    99+
    2023-05-30
    viewpager 引导页 age
  • Android简单实现引导页
    本文实例为大家分享了Android简单实现引导页的具体代码,供大家参考,具体内容如下 一.思路 我们选择ViewPager + View + ImageView 来实现引导页效果,V...
    99+
    2024-04-02
  • PHP页面导航:如何实现页面跳转到新页面
    PHP页面导航:如何实现页面跳转到新页面 在网站开发中,页面导航是一个常见的需求,通过页面跳转可以让用户方便地浏览不同的页面内容。PHP作为一种常用的服务器端脚本语言,提供了丰富的函数...
    99+
    2024-03-04
    页面跳转 php
  • vue+element实现页面顶部tag思路详解
    目录1. 页面渲染2. 来回切换tag3. 删除一个tag标签 这种tag如何写?思路总结下: 1. 页面渲染 1页面显示由数组循环得出,数组可存储在store里 (1)存储前判断是...
    99+
    2024-04-02
  • 基于Viewpager2实现登录注册引导页面
    本文实例为大家分享了Viewpager2实现登录注册引导页面的具体代码,供大家参考,具体内容如下 介绍 屏幕滑动是两个完整屏幕之间的切换,在设置向导或幻灯片等界面中很常见 实现图(图...
    99+
    2024-04-02
  • JS中页面列表加载的常用方法总结
    目录方法简介封装实现分页加载按钮加载滚动加载效果预览导语:最近由于一些事情需要处理,所以没来得及写技术总结了。今天终于可以坐下来好好的梳理一下脉络,说一下那个在日常前端开发过程中,常...
    99+
    2024-04-02
  • Android实现APP欢迎页面简单制作思路
    现在的APP一般都会在应用启动时有一个欢迎界面,这种欢迎界面一般有两种情况,一种用来在应用启动时在后台检测网络状态,亦或者是加载网络数据等一些耗时操作,比如QQ、微信。还有一种...
    99+
    2022-06-06
    app Android
  • 如何用react实现引导页
    本篇内容主要讲解“如何用react实现引导页”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用react实现引导页”吧!用react实现引导页的方法:1、创建一个启动界面,代码如“import...
    99+
    2023-07-04
  • 怎么用react实现引导页
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。怎么用react实现引导页?前言眼看很多公司都开始尝试使用ReactNative,达到跨平台开发,最近也写了很多文章,希望让更多想了解的同学快速上手Rea...
    99+
    2023-05-14
    React
  • ViewPager实现轮播图引导页
    本文实例为大家分享了ViewPager实现轮播图引导页的具体代码,供大家参考,具体内容如下 创建fragment将fragment对象添加到viewPager中,使其可以进行左右滑动...
    99+
    2024-04-02
  • android实现轮播图引导页
    android轮播图引导页(因为是引导页,所以不具备自动轮播的功能) 示例: 代码后面有数字,3.1开始就是开始做小圆点 //分为三个部分 (1)布局 activity_lun_b...
    99+
    2024-04-02
  • 使用javascript实现页面定时跳转总结篇
    下面对使用JavaScript实现页面定时跳转(也称倒计时跳转)做一下总结,各种定时跳转代码记录如下: (1)使用 setTimeout 函数实现定时跳转(如下代码要写在body区域...
    99+
    2022-11-15
    页面定时跳转 倒计时跳转
  • JS实现网页导航条特效
    本文实例给大家分享了一个用原生JS实现的比较实用的网页导航条特效,当页面滚动时,导航条会发生变化,效果如下: 以下是代码实现,欢迎大家复制粘贴和收藏。 <!DOCTYPE...
    99+
    2024-04-02
  • JS如何对Iframe内外页面进行操作总结
    目录在iframe外获取iframe里的内容方式一方式二在iframe内获取iframe外的内容在iframe中调用父页面中定义的方法和变量在父页面操作iframe子页面的方法和变量...
    99+
    2024-04-02
  • Vue实现刷新当前页面的三种方式总结
    目录背景思路实现方式1-通过location.reload和$router.go(0)方法方式2-通过空白页面方式3-通过provide和inject背景 项目当中如果做新增/修改/...
    99+
    2023-01-14
    Vue刷新当前页面 Vue刷新页面
  • HTML 5特效页面及js测试页面汇总的示例分析
    HTML 5特效页面及js测试页面汇总的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。下面是一些用HTML5做的特效页...
    99+
    2024-04-02
  • html5页面结构的实现方法
    本篇内容主要讲解“html5页面结构的实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5页面结构的实现方法”吧!语义元素介绍HTML5标准增加很多...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作