在React JS组件中使用CSS动画微调器时,Windows 8.1的IE中存在bug

Anulaibar

我有一个微调器,它在发出ajax请求时显示。它在React JS组件中。在大多数浏览器中都可以正常工作。但是,在Windows 8.1的IE中,css旋转动画也应用于替换的元素,即,当DOM中的Spinner div被内容div替换时,内容div正在旋转。

复制此行为的示例代码:

HTML:

<!DOCTYPE html>
<html>
  <head>
    <script src="js/build/react.js"></script>
    <link rel="stylesheet" type="text/css" href="css/index.css">
  </head>
  <body>
    <div id="content"></div>
    <script src="js/build/helloworld.js"></script>
  </body>
</html>

CSS:

body {
    background-color: LightPink;
}
.box {
    background-color: HotPink;
    width: 200px;
    height: 200px;
}
@-webkit-keyframes spin {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@keyframes spin {
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
.loader {
    -webkit-animation: spin 0.75s infinite linear;
    animation: spin 0.75s infinite linear;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    border: 6px solid transparent;
    border-right-color: #fff;
    display: inline-block;
}

Js:

var Component = React.createClass({
    getInitialState:function () {
        return {loading:false};
    },
    handleClick:function () {
        this.setState({loading:!this.state.loading});
        console.log(this.state);
    },
    render:function () {

        var content;
        if (this.state.loading) {
            content = <div className="loader"></div>
        } else {
            content = <div className="box"></div>
        }

        return (
            <div>
                <a href="#" onClick={this.handleClick}>Click me!</a>
                <div>
                    {content}
                </div>
            </div>
            );
    }
});
React.render(
    <Component />,
    document.getElementById('content')
);

上面的代码在这里可用:https :
//github.com/anulaibar/react-spinner

在此处运行示例:http :
//react-spinner.herokuapp.com/

单击一次可隐藏粉红色div并显示微调器。再次单击以查看粉色div旋转的错误。

感谢您的输入!

旅团

我没有要测试的IE,但尝试更改此代码:

    var content;
    if (this.state.loading) {
        content = <div className="loader"></div>
    } else {
        content = <div className="box"></div>
    }

对此:

    var content;
    if (this.state.loading) {
        content = <div className="loader" key="loader"></div>
    } else {
        content = <div className="box" key="box"></div>
    }

不同之处在于,在第一个代码中,React会说“哦,className更改了,我将更that.className改为'box'”。在第二个示例中,它看到键已更改,并且甚至不比较className即可重新创建元素。

这是基于我的猜测,当类由于错误而更改时,IE不会删除动画,并且删除元素将解决问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 React 组件的 JS 中使用 CSS 中的 calc 函数

来自分类Dev

使用Facebook的React.js时IE8为什么会出现脚本错误

来自分类Dev

在React.js中使用CSS动画

来自分类Dev

在Windows Phone 8中使用HttpClient执行POST时发生内部服务器错误

来自分类Dev

尝试在Windows 8中使用octopress时生成错误

来自分类Dev

在类组件中的React,React中使用recoil.js而不使用钩子

来自分类Dev

在IE 8/9中使用“严格使用”是否安全?

来自分类Dev

当我尝试在Angular 8中使用主轴编辑器组件注册quill-better-table时,如何解决此错误?

来自分类Dev

在IE8中使用OpenLayers 3(画布问题)?

来自分类Dev

在react-i8next中使用链接

来自分类Dev

在 React 中使用 map() 生成的组件中隐藏子组件

来自分类Dev

如何在IE8及以下IE8浏览器中应用边界半径?

来自分类Dev

无法旋转:在IE8中使用CSS伪元素之后

来自分类Dev

在CSS禁用按钮样式b0rks IE8中使用:disabled

来自分类Dev

在IE8中使用CSS将元素旋转-45deg

来自分类Dev

在Angular 8中使用共享组件进行延迟加载

来自分类Dev

在React中使用Velocity.js动画

来自分类Dev

在React中的每次点击时触发Animate.css动画

来自分类Dev

在Windows 8中使用Google Chrome浏览器中的Gmail进行mailto链接

来自分类Dev

在IE中使用CSS动画时出现包含div的边缘

来自分类Dev

在IE中使用CSS动画时出现包含div的边缘

来自分类Dev

为IE8选择CSS可以在模拟器中使用,但不能直接在IE8上使用

来自分类Dev

当IE8模拟IE9时,GWT工具未在IE8中加载

来自分类Dev

IE8 的 CSS 属性

来自分类Dev

在Windows Phone 8中使用jquery mobile进行页面导航时出现问题

来自分类Dev

在Windows 8中使用Mongo数据库设置Django时出现问题

来自分类Dev

在Windows 7/8中使用远程桌面时更改主机的音量

来自分类Dev

在 React 中播放动画后移除组件

来自分类Dev

使用next.js时出现服务器错误,错误:找不到react-redux上下文值;请确保组件包装在<Provider>中

Related 相关文章

  1. 1

    在 React 组件的 JS 中使用 CSS 中的 calc 函数

  2. 2

    使用Facebook的React.js时IE8为什么会出现脚本错误

  3. 3

    在React.js中使用CSS动画

  4. 4

    在Windows Phone 8中使用HttpClient执行POST时发生内部服务器错误

  5. 5

    尝试在Windows 8中使用octopress时生成错误

  6. 6

    在类组件中的React,React中使用recoil.js而不使用钩子

  7. 7

    在IE 8/9中使用“严格使用”是否安全?

  8. 8

    当我尝试在Angular 8中使用主轴编辑器组件注册quill-better-table时,如何解决此错误?

  9. 9

    在IE8中使用OpenLayers 3(画布问题)?

  10. 10

    在react-i8next中使用链接

  11. 11

    在 React 中使用 map() 生成的组件中隐藏子组件

  12. 12

    如何在IE8及以下IE8浏览器中应用边界半径?

  13. 13

    无法旋转:在IE8中使用CSS伪元素之后

  14. 14

    在CSS禁用按钮样式b0rks IE8中使用:disabled

  15. 15

    在IE8中使用CSS将元素旋转-45deg

  16. 16

    在Angular 8中使用共享组件进行延迟加载

  17. 17

    在React中使用Velocity.js动画

  18. 18

    在React中的每次点击时触发Animate.css动画

  19. 19

    在Windows 8中使用Google Chrome浏览器中的Gmail进行mailto链接

  20. 20

    在IE中使用CSS动画时出现包含div的边缘

  21. 21

    在IE中使用CSS动画时出现包含div的边缘

  22. 22

    为IE8选择CSS可以在模拟器中使用,但不能直接在IE8上使用

  23. 23

    当IE8模拟IE9时,GWT工具未在IE8中加载

  24. 24

    IE8 的 CSS 属性

  25. 25

    在Windows Phone 8中使用jquery mobile进行页面导航时出现问题

  26. 26

    在Windows 8中使用Mongo数据库设置Django时出现问题

  27. 27

    在Windows 7/8中使用远程桌面时更改主机的音量

  28. 28

    在 React 中播放动画后移除组件

  29. 29

    使用next.js时出现服务器错误,错误:找不到react-redux上下文值;请确保组件包装在<Provider>中

热门标签

归档