当前位置: 首页 > news >正文

吉林省 网站建设wordpress网址缩短

吉林省 网站建设,wordpress网址缩短,如何优化网站导航,用万网做网站用过ant design的小伙伴都知道#xff0c;select组件是支持联想搜索跟上下键选中的效果的#xff0c;但是在项目中我们可能会遇到用select组件无法实现我们的需求的情况#xff0c;比如说一个div框#xff0c;里面有input#xff0c;又有tag标签#xff0c;在input中输入…用过ant design的小伙伴都知道select组件是支持联想搜索跟上下键选中的效果的但是在项目中我们可能会遇到用select组件无法实现我们的需求的情况比如说一个div框里面有input又有tag标签在input中输入内容触发联想然后选中其中某一个以tag标签的形式回填到div框中类似这种需求。这个时候我们可以采用ant design的dropdown组件来帮助我们实现。 getBoundingClientRect()方法可以获取元素的大小及其相对视口的位置这样可以帮助对元素是否在可视区域内进行判断 getBoundingClientRect() 是一个在 DOM文档对象模型中常用的方法它返回一个 DOMRect 对象 该对象提供了元素的大小及其相对于视口的位置。这个方法非常有用 特别是在需要知道元素在页面上的确切位置或尺寸时。DOMRect 对象包含以下属性x元素左上角相对于视口viewport的 x 坐标包括任何滚动偏移。 y元素左上角相对于视口viewport的 y 坐标包括任何滚动偏移。 width元素的宽度包括内边距 padding但不包括边框 border、外边距 margin 和滚动条。 height元素的高度包括内边距 padding但不包括边框 border、外边距 margin 和滚动条。 top元素顶部边缘相对于视口viewport的 y 坐标包括任何滚动偏移。 right元素右边缘相对于视口viewport的 x 坐标包括任何滚动偏移。 bottom元素底部边缘相对于视口viewport的 y 坐标包括任何滚动偏移。 left元素左边边缘相对于视口viewport的 x 坐标包括任何滚动偏移。 页面布局代码 需要根据实际情况来进行调整 componentDidMount(){// 添加键盘事件监听 document.addEventListener(keydown, this.handleKeyDown); }// 渲染下拉项 showGroupContcatMenu (){const {contactSearchList, currentFocusMenuIndex} this.state;return Menu{contactSearchList.map((item, index)(Menu.Item id{dropdown-menu-item- index} key{item.id} onClick{()this.handleSelectMenuItem(item)} style{{background: index currentFocusMenuIndex ? #fff5e6 : }}div{item.name}nbsp;nbsp;{item.enterpriseName}nbsp;nbsp;span{item.email ${item.email}}/span/div/Menu.Item))}Menu.Item id{dropdown-menu-item- contactSearchList.length} key{contactSearchList.length} style{{background: currentFocusMenuIndex contactSearchList.length ? #fff5e6 : }} onClick{()this.openGroupContcatIcon(null)}搜索联系人/Menu.Item/Menu}// 布局代码 div classNametag{selectContact.length 0 selectContact.map(item(Popover key{item.id} triggerclick content{Spin spinning{showPhoneLoading}span style{{userSelect:none}}{showPhoneLoading?:trueEmail}/span/Spin} overlayClassNamecontact-email-tiponVisibleChange{(visible) this.onPopoverVisibleChange(visible, item)}Tag key{item.id} closable{true} onClose{(e)this.handleClose(item.id,item,e,searchGroupContcat,contact)}{item.name}{item.hiddenEmail || item.email || item.disPlayEmail?spannbsp;nbsp;/span:}{item.hiddenEmail || item.email || item.disPlayEmail}/Tag/Popover))}Dropdown visible{onKeywordsContact ? true : false}overlay{()this.showGroupContcatMenu()} overlayClassNamebropdown-overlay-classdestroyPopupOnHide{true} div{getFieldDecorator(onKeywordsContact, {initialValue: ,})(AInput classNameinput onBlur{(e)this.handleBlur(onKeywordsContact)}onPressEnter{this.handleInputPressEnter}onChange{this.handleGroupContcatChange}/)}/div/Dropdown /div 监听键盘响应事件的核心代码 handleKeyDown (event) {const {onKeywordsContact, currentFocusMenuIndex, contactSearchList} this.statelet newCurrentFocusMenuIndex currentFocusMenuIndex;if (event.key ArrowUp onKeywordsContact) { event.preventDefault(); newCurrentFocusMenuIndex currentFocusMenuIndex 0 ? contactSearchList.length : currentFocusMenuIndex - 1;this.scrollIntoViewIfNeeded(newCurrentFocusMenuIndex, contactSearchList.length);} else if (event.key ArrowDown onKeywordsContact) { event.preventDefault(); newCurrentFocusMenuIndex currentFocusMenuIndex contactSearchList.length ? 0 : currentFocusMenuIndex 1;this.scrollIntoViewIfNeeded(newCurrentFocusMenuIndex, contactSearchList.length);} this.setState({currentFocusMenuIndex: newCurrentFocusMenuIndex // 记录当前选中高亮的元素}) }scrollIntoViewIfNeeded (newCurrentFocusMenuIndex, maxLength){const ulEle $(.bropdown-overlay-class .ant-dropdown-menu)[0];const liEle $(#dropdown-menu-item- newCurrentFocusMenuIndex)[0];const ulRect ulEle.getBoundingClientRect(); const liRect liEle.getBoundingClientRect();if(newCurrentFocusMenuIndex 0){ulEle.scrollTop 0;} else if(newCurrentFocusMenuIndex maxLength){ulEle.scrollTop ulEle.scrollHeight;} else {// 检查li是否在ul的上方 if (liRect.top ulRect.top) { // 滚动ul到li的顶部位置 ulEle.scrollTop liEle.offsetTop; } // 检查li是否在ul的下方这里假设我们不想滚动超过li的底部 else if (liRect.bottom ulRect.bottom) { // 滚动ul到li的底部位置减去ul的高度以确保li的底部在可视区域内 ulEle.scrollTop liEle.offsetTop liEle.offsetHeight - ulEle.offsetHeight; } }}
http://www.w-s-a.com/news/767035/

相关文章:

  • 合肥建设工会网站芜湖做网站建设公司
  • 玉林市住房和城乡建设局网站网站开发百灵鸟
  • 网站怎么做双机房切换建设部网站2015年第158号
  • 郑州服务设计公司网站色块的网站
  • 网站设计所用到的技术做网站添加mp3
  • 凡科做的微网站怎样连接公众号seo李守洪排名大师
  • 温州网站开发网站的制作东莞寮步伟易达电子厂
  • 北京网站设计制作关键词优化微信小程序开发推广网站建设优化规划书
  • 杭州临平网站建设开发公司将购房款划给总公司的法律责任
  • 广东外贸网站推广分类wordpress
  • 聚美优品网站建设方案商城和营销型网站建设
  • 比较著名的seo网站如何建设网站?
  • 如何做商业网站最火wordpress主题
  • 建设网站需要哪些软硬件条件wordpress文章页标题优化
  • 网站建设功能需求文档wordpress 1g1核1m
  • 学做窗帘要下载哪个网站用户反馈数据分析软件园
  • 宁晋网站建设多少钱产品宣传推广方式有哪些
  • delphi做网站阿里巴巴官网首页登录入口
  • 游戏网站怎么建设新建wordpress模板
  • 网络服务器是指兰州网站seo诊断
  • 怎样做投资理财网站godaddy上传网站
  • 网站建设深圳哪家好世界500强企业招聘网站
  • 如何减少网站建设中的错误温州网站公司哪家好
  • 宜章网站建设北京定制公交网站
  • 怎么让谷歌收录我的网站郑州网站建设更好
  • 在线视频网站开发方案phpaspnet网站开发实例视频
  • 正常做一个网站多少钱网站开发所遵循
  • 西部数码网站备份领英创建公司主页
  • 中山网站建设文化平台成都电商app开发
  • 无锡网站推广公司排名中国十大网站建设