首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails 6.0.0中使用外部javascript库时出错

rails 6.0.0中使用外部javascript库时出错
EN

Stack Overflow用户
提问于 2022-05-30 14:52:19
回答 1查看 16关注 0票数 0
代码语言:javascript
复制
<script>
import '@interactjs/auto-start'
import '@interactjs/actions/drag'
import '@interactjs/actions/resize'
import '@interactjs/modifiers'
import '@interactjs/dev-tools'
import interact from '@interactjs/interact'

    // Step 1
const slider = interact('.slider')    // target elements with the "slider" class

slider
  // Step 2
  .draggable({                        // make the element fire drag events
    origin: 'self',                   // (0, 0) will be the element's top-left
    inertia: true,                    // start inertial movement if thrown
    modifiers: [
      interact.modifiers.restrict({
        restriction: 'self'           // keep the drag coords within the element
      })
    ],
    // Step 3
    listeners: {
      move (event) {                  // call this listener on every dragmove
        const sliderWidth = interact.getElementRect(event.target).width
        const value = event.pageX / sliderWidth

        event.target.style.paddingLeft = (value * 100) + '%'
        event.target.setAttribute('data-value', value.toFixed(2))
      }
    }
  })
</script>
<style>
.sliders {
  padding: 1.5em
}
/* the slider bar */
.slider {
  position: relative;
  width: 100%;
  height: 1em;
  margin: 1.5em auto;
  background-color: #29e;
  border-radius: 0.5em;
  box-sizing: border-box;

  font-size: 1em;

  -ms-touch-action: none;
     touch-action: none;
}

/* the slider handle */
.slider:before {
  content: "";
  display: block;
  position: relative;
  top: -0.5em;

  width: 2em;
  height: 2em;
  margin-left: -1em;
  border: solid 0.25em #fff;
  border-radius: 1em;
  background-color: inherit;

  box-sizing: border-box;
}

/* display the value */
.slider:after {
  content: attr(data-value);
  position: absolute;
  top: -1.5em;
  width: 2em;
  line-height:1em;
  margin-left: -1em;
  text-align: center;
}</style>
<div class="sliders">
  <div class="slider"></div>
  <div class="slider"></div>
  <div class="slider"></div>
</div>

我试图在rails 6中使用interact.js,但我无法让它工作。我是新手,所以这可能是一个常见的问题,但是如何正确导入像interact.js这样的外部库。我已经尝试了所有我在网上找到的东西,所以我想我找错了东西。任何帮助都将不胜感激,谢谢提前!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-30 15:04:49

这个语法:

代码语言:javascript
复制
import '@interactjs/auto-start'
import '@interactjs/actions/drag'
import '@interactjs/actions/resize'
import '@interactjs/modifiers'
import '@interactjs/dev-tools'
import interact from '@interactjs/interact'

用于导入npm模块。如果不对代码进行预处理,就不能在浏览器中这样做。您可以像这样导入库,最好是在一个单独的脚本标记中。但是,如果计划只导入一个库,则可以将其设置为

代码语言:javascript
复制
<script src="CDN url"></script>

把它放在你的另一个脚本标签上。为您的库找到合适的CDN主机。示例:https://cdnjs.com/libraries/interact.js/1.0.2

您不能使用这样的导入语句。如果从CDN导入库,则可以在文档中使用它。查看https://interactjs.io/docs/installation CDN预捆绑使用。我认为interact是全球性的,您不需要导入任何东西。

如果您想要正确地处理这个问题,您将为您的前端应用程序设置一个单独的项目/文件夹。然后必须构建该应用程序,然后将生成的分发文件附加到Rails HTML中。这取决于你的目的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72436265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档