2017-08-14 3 views
14

をスクロールすると、JQueryの進行状況バーが表示されるので、上部に緑色のバーが表示されます。スクロールを開始すると、進行状況バーは表示されません。私はバーの要素は、それがスクリーンショットRails5 + JQueryプログレスバーが機能しない

enter image description here

enter image description here

scroll.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 + '%') 

}) 

show.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> 
を参照してください幅%が上がっていく番組に要素を検査します

ログを見ていないscrが見つかりませんOLLが、その(前のスクリーンショットを参照)、上がっ幅素子を示す

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' 

製品は、私は私のルートで

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

これを持って

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

をcontroller.rb

+0

このリクエストをトリガするのは 'Started GET" /products/scroll.js "'ですか? ** resourceful show route **と競合します。また、Railsはurlに ':id'を期待しているので、' scroll'を 'id'として扱っているのでエラーになります。 – Pavan

+0

私のルートには、製品https:// githubというリソースがあります。com/neilp666/product_pricing_calculator – Neil

+0

これは問題ありませんが、このリクエストをトリガしたことを知りたいです。「GETを開始しました」/products/scroll.js "'? – Pavan

答えて

9

このエラー

のActiveRecord :: RecordNotFoundは

間違った資産パスによってトリガーされる( 'ID' =スクロールして製品を見つけることができませんでした)。あなたはapp/layouts/application.html.erbに見たとき、あなたはSRCのために、この

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

URLは間違って表示されます。これは/products/:idと矛盾する/products/scroll.jsとして機能し、そのエラーが発生しました。 /app/assets/javascriptsフォルダにscroll.jsがあるので、/assets/scroll.jsを使用する必要があります。それは以下好きに変更するとエラーに

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

OR

を修正する必要があるだけで

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

を生成し、この

//= require scroll 

のようにそれを含めることによって、application.jsからそれを呼び出しますについて読むことをお勧めしますをよく理解してください。

+0

進捗divクラスにテキストを追加する場合にのみコードを追加しました。テキストを追加しないと、プログレスバーは表示されません。しかし、ありがとう&私は再び資産のパイプラインをチェックアウトする! – Neil

関連する問題