在ES6中为IE8使用带有jquery的velocity

时间:2015-10-27 10:52:39

标签: javascript velocity.js

我试图在ES6模块中使用velocity和jQuery(仅用于IE8支持)。请考虑以下代码:

import { Component } from 'react';
import ReactDOM from 'react-dom';
import jquery from 'jquery';
import velocity from 'velocity-animate';

export default class ScrollTo extends Component {
    render() {...}
    scrollToTop() {
        velocity(ReactDOM.findDOMNode(this), 'scroll', { container: ReactDOM.findDOMNode(this.props.container) });
    }

在IE8速度抱怨它无法找到jQuery。我检查了源代码,看起来像velocity在窗口对象上查找jQuery但是我将它作为模块导入。

有没有办法用导入的jquery实例化/绑定速度?

1 个答案:

答案 0 :(得分:0)

您可以使用ShimPlugin来使用webpack来填充jquery

请参阅: https://github.com/webpack/webpack/issues/192

或使用ProvidePlugin将jquery公开给窗口,这样您每次需要时都不必import jquery

new webpack.ProvidePlugin({
    $: "jquery",
    jQuery: "jquery",
    "window.jQuery": "jquery"
})
  

插件ProvidePlugin此插件使模块可用作变量   在每个模块中。只有在使用变量时才需要该模块。

     

示例:无需编写即可在每个模块中使用$和jQuery   要求( “jquery的”)。