首页 > 其他分享 >Vue 使用 Devextreme框架,下拉框不会随页面的滚动而移动的问题解决

Vue 使用 Devextreme框架,下拉框不会随页面的滚动而移动的问题解决

时间:2024-05-23 11:51:01浏览次数:17  
标签:Vue 滚动 id Devextreme 组件 下拉框 页面

Devextreme的DxSelectBox组件的下拉选项部分,默认是绝对位置布局,导致页面滚动时,下拉部分不会上下移动

个人的解决方案,监听页面滚动事件,如果目前有打开的下拉框,先关闭下拉框,随后迅速再打开,视觉效果上可以做到下拉选项跟随组件滚动

vue项目中可能会有很多页面,很多下拉框,我是用的给每个下拉框组件一个id,然后分别处理opened和closed事件

1. 定义全局变量 SelectedBoxId, 每次有下拉框打开时,在opened事件中,将id赋值到这个变量

2. 每个下拉组件的closed事件中,传入当前组件id,如果当前打开的是当前下拉框,将SelectedBoxId 改成null

3. 监听页面滚动事件,处理下拉框的关闭和打开

  handleScroll(e) {
      if(this.selectedBoxId) {
        var comp = document.getElementById(this.selectedBoxId).__vue__.instance
        comp.close()
        setTimeout(()=>{
          comp.open()
        },50)
      }
    }

 

标签:Vue,滚动,id,Devextreme,组件,下拉框,页面
From: https://www.cnblogs.com/along007/p/18208124

相关文章

  • VUE3.0的安装教程
    一、下载nodejs    访问nodejs官网或者中文网:nodejs中文网  二、点击下载得到的.msi文件   (1) 点击next (2)接收协议,下一步        三、配置npm相关文件  (1)打开刚才安装node.js的文件夹,在里面新建两个文件夹,分别为node_......
  • vue 输入框maxlength不影响拼音输入
    直接设置input的maxlength会导致最后几个字无法用拼音输入,比如最大长度还剩两个字,我想输入'项目',当我拼音输入'xi'之后,后面的'angmu'是打不出的。可以不设置maxlength,而是用 this.$nextTick(()=>{})在用户输入完之后,裁剪文字<template><viewclass="input-view">......
  • Vue搭建移动端h5项目(已开源,附带git地址)Vant+Vue Router+Vuex+axios封装+案例交互+部分
    一、项目介绍以及项目地址             项目介绍:vue2搭建。项目通过amfe-flexible与postcss-pxtorem实现移动端适配;通过Vantui作为项目的组件库;通过Vuex管理数据状态,进行模块化管理;通过VueRouter配置项目路由,进行模块化管理;封装axios进行数据的请求,以及一些页......
  • Electron-Vue3-Vadmin后台系统|vite2+electron桌面端权限管理系统
    Electron-Vue3-Vadmin后台系统|vite2electron桌面上端管理权限智能管理系统根据vite2.xelectron12桌面上端后台管理智能管理系统Vite2ElectronVAdmin。继上一次共享vite2融合electron构建后台框架,此次产生的是全新开发设计的跨桌面上中后台管理管理权限智能管理系统。应用全新......
  • 封装 ECharts 为 Vue 组件:X-ECharts 简介
    ECharts是一个广泛使用的开源可视化库,它提供了丰富的图表类型和灵活的配置选项,适用于复杂的数据可视化需求。而X-ECharts是一个基于ECharts封装的Vue组件库,旨在提供更简洁的集成方式,同时兼容Vue2和Vue3,使得开发者能够在不同版本的Vue项目中无缝使用ECharts。Eng......
  • Performance选项卡笔记以及分析vue页面卡顿
    各区域内容说明Performance选项卡可以用于分析页面性能。最上方红框区域内出现红色块的代表该时间段帧率不足60帧。往下是cpu占用率。卡顿原因主要耗时根据以下该图进行分析。问题分析由此可见本次分析主要导致卡顿的原因是因为js的执行所导致的。可以选择时间区域进一......
  • vue项目的简单搭建,vue init 和 vue create 的区别
    本文基于:[email protected]@2.5.2vuecreate和init的区别是vue-cli3.x的初始化方式,目前模板是固定的,模板选项可自由配置,创建出来的是vue-cli3的项目,与cue-cli2项目结构不同,配置方法不同,具体配置方法参考官方文档。vuecreatedemo 使用create命令搭建vueinit是vue-c......
  • 离线文档(vue/react/element/element-plus/ands vue等等)
    特殊环境需要离线状态文档的请参考这里 可以在你所想要的东西在github的官方项目上找一个名字包含‘gh-page’或者‘get-page’的分支下载下来然后本地win+Rcmd输入npminstallsgo-g全局下载sgo之后在你下载下来的文件夹根目录cmd打开终端输入sgo--fallindex.html......
  • vue3 Cesium添加地形的办法
    Cesium自带有地形,awaitCesium.createWorldTerrainAsync({    requestVertexNormals:true,    requestWaterMask:true    });async需要自己添加在方法前面然后在newCesium.Viewer("map",{terrainProvider:provider})provide中,第一个......
  • vue搭建脚手架 出现问题Command vue init requires a global addon to be installed.
    使用vue-cli脚手架命令vueinitwebpackmy-App创建项目回车时显示Commandvueinitrequiresa global addontobeinstalled.Pleaserun yarn globaladd@vue/cli-initandtryagain. 解决方法:npminstall-g@vue/cli-init 然后创建项目,正常。 ......