javascript - 屏幕外汉堡包导航

标签 javascript html css reactjs css-selectors

我正在尝试创建一个右侧的屏幕外导航。类似于 this 的东西.我正在关注这个 tutorial但我自己进行修改。

我正在 reactjs 中构建它和 CSS .

我目前无法让前端的外观/行为方式与 this 相同.我想可能是我没有用 .nav-trigger:checked + .site 选择正确的标签。 .

我想要 <ul>取消选中标签时隐藏。选中时,<label>将向左移动 215px 和带有 .site 的元素将向右移动 200px,显示底层 <ul> .

这是我的 jsfiddle :

最佳答案

你可以这样做。

  • 在开始时隐藏您的导航并仅显示汉堡包图标。您可以使用 transform: translateX() 来完成。您可以使用 display: none,但是 display: none 您不能设置动画。

  • 然后单击汉堡包图标将状态更改为 true(根据状态值,我们将渲染一个类来显示导航)。

  • 然后呈现一个 var(例如 open),如果 this.state.open 为 false,它将为空(nav div 将只有 >导航类)

    让 open = this.state.open ? “打开”:“”;

  • 如果 this.state.open 为真,则 var open 将为 open(nav div 将有两个类 navopen)。

你可以这样做:

class Test extends React.Component {
    constructor(props){
        super(props);
          this.state = {
            open: false
          }
    }
    
    toggleNav(){
        this.setState({open: !this.state.open});
    }
    
    render(){
        let open = this.state.open ? "open" : "";
        return (
        <div>
            <div className={`nav ${open}`}>
               <div className="icon">
                   <img src="https://cdn4.iconfinder.com/data/icons/wirecons-free-vector-icons/32/menu-alt-512.png" onClick={this.toggleNav.bind(this)}/>   
               </div>
          </div>
        </div>
      )
    }
}

React.render(<Test />, document.getElementById('container'));

并按如下方式添加css:

.nav{
  width: 200px;
  height: 800px;
  background-color: yellow;
  position: relative;
  transform: translateX(-208px);
  transition: all 1s ease-out;
}

.icon img{
  width: 50px;
  position: absolute;
  right: -50px;
}

.open{
  transform: translateX(0);
}

Here is a fiddle to play with.

关于javascript - 屏幕外汉堡包导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41011079/

相关文章:

javascript - 如何使用 jQuery 获取点击元素的 html 内容

javascript - 如何在标签strong中设置文本?

html - 使用自动生成的数字的 CSS 继承

php - 在wordpress中添加浏览器校验码

javascript - 图像 slider 和页面加载时图像的堆叠外观

javascript - 以 Angular 将文件附加到 FormData 后无法上传文件

javascript - ddslick 值未定义 - 无法传递值

jQuery onClick 用于扩展投资组合页面右侧的文本内容?

javascript - 脚本不会在浏览器中加载 angular2

html - 使用 HTML5 在 Canvas 内拖放功能