javascript - Rails5 + JQuery 进度条不起作用

标签 javascript jquery html css ruby-on-rails

实现一个 JQuery 进度条,这样当你向下滚动时 它应该在顶部显示一个绿色条。当我开始滚动时,进度条没有出现。我检查栏上的元素,它显示宽度 % 向上看截图

enter image description here

enter image description here

滚动.js

$(document).on('scroll', function() {

  var pixelsFromTop = $(document).scrollTop()

  var documentHeight = $(document).height()
  var windowHeight = $(window).height()

  var difference = documentHeight - windowHeight

  var percentage = 100 * pixelsFromTop / difference

  $('.bar').css('width', percentage + '%')

})

显示.html.erb

<div class="progress">
   <div class="bar"></div>
</div>

<section class="day">

    <h2><%= "To make #{number_to_currency @product.revenue}" %></h2>
    <p class="lead"><%= "You need to make #{number_to_currency @product.monthly_amount} a month" %><br/>
    <%= "You need to make #{number_to_currency @product.daily_amount} a day" %></p>
</section>


<section class="people"> 

    <h2>Or if you create and sell a product</h2>
        <table>
        <p class="lead"><%= "To make #{@product.revenue } 10,000 people to buy a
        #{number_to_currency @product.create_and_sell_product_10000} product" %><br/>

        <%= "To make #{@product.revenue } 5,000 people to buy a
        #{number_to_currency @product.create_and_sell_product_5000} product" %><br/>

        <%= "To make #{@product.revenue } 2,000 people to buy a
        #{number_to_currency @product.create_and_sell_product_2000} product" %><br/>

        <%= "To make #{@product.revenue } 1,000 people to buy a
     #{number_to_currency @product.create_and_sell_product_1000} product" %><br/>

        <%= "To make #{@product.revenue } 100 people to buy a
     #{number_to_currency @product.create_and_sell_product_100} product" %></p>
        </table>
</section>

查看日志,它没有找到滚动条,但显示宽度元素在上升,(参见上一个屏幕截图)

Started GET "/products/scroll.js" for 127.0.0.1 at 2017-08-14 12:27:17 +0100
Processing by ProductsController#show as JS
  Parameters: {"id"=>"scroll"}
  Product Load (0.4ms)  SELECT  "products".* FROM "products" WHERE "products"."id" = $1 LIMIT $2  [["id", 0], ["LIMIT", 1]]
Completed 404 Not Found in 3ms (ActiveRecord: 0.4ms)

ActiveRecord::RecordNotFound (Couldn't find Product with 'id'=scroll):

app/controllers/products_controller.rb:67:in `set_product'

产品 Controller .rb

  def set_product
      @product = Product.find(params[:id])
    end

我的 route 有这个

Rails.application.routes.draw do
  resources :products

  root 'products#new'
end


Started POST "/products" for 127.0.0.1 at 2017-08-16 17:03:11 +0100
Processing by ProductsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"ZU4tSNn0PsbSL2CTB45yIuBlrn5OePTYPSbIcdKThzJuu/k7GsiIhFf7JJ98pC5NmhGVg5QyekokpzR1s4tv4A==", "product"=>{"revenue"=>"2000", "months"=>"2"}, "commit"=>"Show Me How Much to Charge!"}
   (0.9ms)  BEGIN
  SQL (3.5ms)  INSERT INTO "products" ("revenue", "months", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"  [["revenue", "2000.0"], ["months", 2], ["created_at", "2017-08-16 16:03:11.679460"], ["updated_at", "2017-08-16 16:03:11.679460"]]
   (46.6ms)  COMMIT
Redirected to http://localhost:3000/products/82
Completed 302 Found in 57ms (ActiveRecord: 51.0ms)


Started GET "/products/82" for 127.0.0.1 at 2017-08-16 17:03:11 +0100
Processing by ProductsController#show as HTML
  Parameters: {"id"=>"82"}
  Product Load (0.3ms)  SELECT  "products".* FROM "products" WHERE "products"."id" = $1 LIMIT $2  [["id", 82], ["LIMIT", 1]]
  Rendering products/show.html.erb within layouts/application
  Rendered products/show.html.erb within layouts/application (7.2ms)
Completed 200 OK in 398ms (Views: 395.0ms | ActiveRecord: 0.3ms)


Started GET "/products/scroll.js" for 127.0.0.1 at 2017-08-16 17:03:12 +0100
Processing by ProductsController#show as JS
  Parameters: {"id"=>"scroll"}
  Product Load (0.3ms)  SELECT  "products".* FROM "products" WHERE "products"."id" = $1 LIMIT $2  [["id", 0], ["LIMIT", 1]]
Completed 404 Not Found in 1ms (ActiveRecord: 0.3ms)



ActiveRecord::RecordNotFound (Couldn't find Product with 'id'=scroll):

app/controllers/products_controller.rb:67:in `set_product'

enter image description here

最佳答案

这个错误

ActiveRecord::RecordNotFound (Couldn't find Product with 'id'=scroll)

不正确的 Assets 路径触发。当你查看 app/layouts/application.html.erb 时,你会看到这个

<script src="scroll.js"></script>

src 的 url 错误。这然后作为 /products/scroll.js/products/:id 冲突并导致该错误。您在 /app/assets/javascripts 文件夹中有 scroll.js,因此您需要使用 /assets/scroll.js。将其更改为如下所示应该可以修复错误

<script src="/assets/scroll.js"></script>

只需像这样从 application.js 调用它

//= require scroll

产生

<script src="/assets/scroll.js?body=1"></script>

我建议您阅读 Asset Pipeline更好地理解。

关于javascript - Rails5 + JQuery 进度条不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45673780/

相关文章:

html - 如何将 iframe 水平居中?

javascript - Excelljs - 如何从流创建工作表

javascript - JQuery 用 Base64 替换图像(html2canvas 无代理)

javascript - jQuery 重复自动滚动从上到下和从下到上 x 时间

jquery悬停问题

javascript - 删除jquery中的一些标签

html - 使用 EM 单元的 IE9 输入和选择缩放问题

javascript - 为什么表格的主体滚动条在 Internet Explorer 11 上不起作用?

javascript - nodejs 域实际上如何在多个请求的幕后工作?

javascript - Angular 和数据库访问 : Proper Practices