我想通过下拉菜单完成以下操作.

1-点击显示

2-双击隐藏它

3-单击其外部的任何地方时将其隐藏.

4-通过滑动效果完成所有操作

我已经被1-3覆盖了.我被封锁4.

如何在下面发生以下单击事件的同时创建幻灯片效果?

我已经使用jQuery的slideToggle(此处未显示)获得了有效的概念证明……但是,我想学习如何以反应方式进行操作.

// CASE 1 Show Hide on click, no slide effect yet

class ServicesDropdown extends Component {

constructor() {

super();

this.state = {

dropdown: false

};

}

handleClick = () => {

if (!this.state.dropdown) {

// attach/remove event handler

document.addEventListener('click', this.handleOutsideClick, false);

} else {

document.removeEventListener('click', this.handleOutsideClick, false);

}

this.setState(prevState => ({

dropdown: !prevState.dropdown,

}));

}

handleOutsideClick = (e) => {

// ignore clicks on the component itself

if (this.node.contains(e.target)) {

return;

}

this.handleClick();

}

render() {

return (

{ this.node = node; }}>

Services +

{this.state.dropdown &&

(

  • { this.node = node; }}>
  • Web Design
  • Web Development
  • Graphic Design

)}

)

}

}

解决方法:

不久前,我想出了如何将下滑效果应用于React组件,它的行为并不完全相同,但是您可能会发现我的代码&说明很有用.在这里查看我对另一个相关问题的答案:https://stackoverflow.com/a/48743317/1216245 [编辑:从那时起它已被删除,因此我在下面粘贴说明.

这是解决方案最重要部分的简短描述.

transitionName="slide"

transitionEnterTimeout={300}

transitionLeaveTimeout={300}

>

{ this.state.showComponent && }

请注意,所有内容都包装在一个容器中,动画需要它才能像您希望的那样工作.

这是我用于幻灯片动画效果的CSS:

/*

Slide animation styles.

You may need to add vendor prefixes for transform depending on your desired browser support.

*/

.slide-enter {

transform: translateY(-100%);

transition: .3s cubic-bezier(0, 1, 0.5, 1);

&.slide-enter-active {

transform: translateY(0%);

}

}

.slide-leave {

transform: translateY(0%);

transition: .3s ease-in-out;

&.slide-leave-active {

transform: translateY(-100%);

}

}

/*

CSS for the submenu container needed to adjust the behavior to our needs.

Try commenting out this part to see how the animation looks without the container involved.

*/

.component-container {

height: $component-height; // set to the width of your component or a higher approximation if it's not fixed

min-width: $component-width; // set to the width of your component or a higher approximation if it's not fixed

}

标签:ecmascript-6,reactjs,javascript

来源: https://codeday.me/bug/20191025/1928137.html

html5 sidetoggle,javascript-使用React.js实现SlideToggle功能相关推荐

  1. HTML5 Canvas JavaScript库 Fabric.js 使用经验

    首先,表明我的态度:采用 Flash 才是最优方案,不建议使用 HTML 5 的 Canvas 做一些生产/工业级的网页应用. Flash的优势一是浏览器支持好,二是代码成熟稳定.而HTML5 的 C ...

  2. 基于HTML5+CSS+JavaScript+ Three.js实现的Free-Form-Deformation(FFD三维自由变形)

    资源下载地址:https://download.csdn.net/download/sheziqiong/85610855 一.实验目的和要求 掌握 FFD 变形算法的思想与实现原理. 能够实现交互控 ...

  3. 撰写本文的所有基本React.js概念

    Update: This article is now part of my book "React.js Beyond The Basics". 更新:本文现在是我的书<超 ...

  4. 坚如磐石的React.js基础:入门指南

    by Rajat Saxena 通过拉贾特·萨克森纳(Rajat Saxena) 坚如磐石的React.js基础:入门指南 (Rock Solid React.js Foundations: A Be ...

  5. React.js 小书 Lesson14 - 实战分析:评论功能(一)

    React.js 小书 Lesson14 - 实战分析:评论功能(一) 本文作者:胡子大哈 本文原文:http://react.huziketang.com/blog/lesson14 转载请注明出处 ...

  6. 用html5和javascript调用摄像头实现拍照功能

    在机缘巧合之下,了解到用HTML5和javascript调用摄像头来实现拍照功能,今天就把大致原理写下来.页面布局很简单,就是一个input标签,两个HTML5元素video.canvas和一个but ...

  7. js调用vlc_如何使用HTML5或JavaScript查看RTSP流,而不使用Real Player插件上的VLC插件等插件?...

    The idea is to develop a cross-platform, standalone application that could play a video, streamed ov ...

  8. html5 js 手机剪切板,JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)...

    新学习JavaScript,就碰到这么一个需求,几乎网上的方法都试过了.写出了总结下 使用的方法:clipboard 插件下载地址:https://github.com/zenorocha/clipb ...

  9. HTML5期末大作业:XXX 网站设计——指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规

    HTML5期末大作业:XXX 网站设计--指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划 ...

最新文章

  1. 语音识别:时间序列的Smith–Waterman对齐算法
  2. MySQL高级 - 锁 - InnoDB行锁 - 间隙锁危害
  3. 我理解中的“大前端”/“大无线”
  4. oracle那些基本知识
  5. 多播委托(multicast delegate)
  6. centos7邮件服务器SSL配置
  7. 微信扫码支付模式二【无法回调】解决方案(转)
  8. 用户画像算法分享和干货推荐
  9. 电力电子,电机控制系统的建模与仿真
  10. ITRS/GCRS/J2000坐标系的相互转换
  11. java+图片高保真压缩_java对图片进行“高保真”压缩
  12. 微信授权登录(微信订阅号使用测试账号)
  13. 2021年机修钳工(中级)考试题库及机修钳工(中级)试题解析
  14. 互联网时代“陨落”,国家发布元宇宙战略的信号对失业和担心失业的我们带来了什么启迪?
  15. 如何调教ChatGPT
  16. 《程序设计基础》 第十章 函数与程序结构 6-5 递归求简单交错幂级数的部分和 (15 分)
  17. 阿拉伯数字与中文数字的相互转换
  18. Java进阶:java程序设计慕课版课后答案浪潮优派
  19. JS如何实现电子签名
  20. 【管理研习社】给CEO们推荐一些书

热门文章

  1. php字符串处理面试题,关于PHP字符串的一道面试题
  2. eas库存状态调整单不能反审核_审核与反审核
  3. oracle vertica性能对比,测试Vertica性能
  4. css outline color,css outline-color属性怎么用
  5. html中刷新按钮的代码,常见的按钮类型 点击button刷新的几种常用代码
  6. 144hz minidp转dp_毕亚兹miniDP转HDMI转接器,拓展你的Surface Pro 3上4K大屏
  7. python多进程加快for循环_python多进程 通过for循环 join 的问题
  8. 树莓派4b ros镜像 网盘_树莓派4B的入手操作
  9. 儿童手表怎么删除联系人_双11儿童手表选购指南:全天候24小时定位,做孩子的贴身保镖...
  10. markdown 自用笔记