質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.78%

.jsのslickを読み込んでくれず困っています。

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 548

ryobu

score 15

何度も質問してすみません。
先ほどの質問からかなり進展してはいるのですがどうしても.jsファイルを完全に読み込んでくれず困っています。
行おうとしているプログラムの元はここから内容を書き換えコピーしています。元プログラム
SCSSをCSSに変換済、jQueryを読み込み済ですがslickだけ読み込んでくれません。
WEBソースからURLでもダメ、ダウンロードして外部ファイルにしてもダメです。

.jsファイルで使用しているコードです。

function background(c1, c2) {
  return {
  }
}

function changeBg(c1, c2) {
  $('div.bg').css(background(c1, c2)).fadeIn(0, function() {
    $('body').css(background(c1, c2));
    $('.bg').hide();
  })
  $('span.bg').css({
    background: '-moz-linear-gradient(135deg, ' + c1 + ', ' + c2 + ')',
    background: '-o-linear-gradient(135deg, ' + c1 + ', ' + c2 + ')',
    background: '-webkit-linear-gradient(135deg, ' + c1 + ', ' + c2 + ')',
    background: '-ms-linear-gradient(135deg, ' + c1 + ', ' + c2 + ')',
    background: 'linear-gradient(135deg, ' + c1 + ',' + c2 + ')'
  });
}

$slider = $('.slider');

$slider.slick({
  arrows: false,
  dots: true,
  infinite: true,
  speed: 600,
  fade: true,
  focusOnSelect: true,
  customPaging: function(slider, i) {
    var color = $(slider.$slides[i]).data('color').split(',')[1];
    return '<a><svg width="100%" height="100%" viewBox="0 0 16 16"><circle cx="8" cy="8" r="6.215" stroke="' + color + '"></circle></svg><span style="background:' + color + '"></span></a>';
  }
}).on('beforeChange', function(event, slick, currentSlide, nextSlide) {
  colors = $('figure', $slider).eq(nextSlide).data('color').split(',');
  color1 = colors[0];
  color2 = colors[1];
  $('.price, .btn').css({
    color: color1
  });
  changeBg(color1, color2);
  $('.btn').css({
    borderColor: color2
  });
});

.jsファイルに alert('OK'); で確認したところ、$slider = $('.slider');以降に問題があるようでした。(それより上は読み込む)

<head></head>内には

<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.0.min.js"></script>
<script src="slick.min.js(格納先URL)"></script>
<script type="text/javascript" src="JS格納先URL"></script>
<link rel="stylesheet" type="text/css" href="CSS格納先URL"/>
</head>

をいれています。

使用しているHTML/CSSも添付致します。宜しくお願い致します。

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-JP">
<meta name="viewport" content="width=device-width">

<title>テスト</title>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" >

<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.0.min.js"></script>
<script src="slick.min.js(格納先URL)"></script>
<script type="text/javascript" src="JS格納先URL"></script>
<link rel="stylesheet" type="text/css" href="CSS格納先URL"/>

</head>
<body style="font-family: Yu Gothic;">
<CENTER>

<!--

Follow me on
Dribbble: https://dribbble.com/supahfunk
Twitter: https://twitter.com/supahfunk
Codepen: https://codepen.io/supah/

-->
<div class="shop-card">
  <div class="title">
    Nike Metcon 2
  </div>
  <div class="desc">
    Men's training shoe
  </div>
  <div class="slider">
    <figure data-color="#8db7ce, #8db7ce">
      <img src="https://www.rakuten.ne.jp/gold/ryobu/fuzita/page/top/case/2.png" >
    </figure>
    <figure data-color="#deb9bc, #deb9bc">
      <img src="https://www.rakuten.ne.jp/gold/ryobu/fuzita/page/top/case/3.png" />
    </figure>
    <figure data-color="#8589a7, #8589a7">
      <img src="https://www.rakuten.ne.jp/gold/ryobu/fuzita/page/top/case/4.png" />
    </figure>
    <figure data-color="#2d798c, #2d798c">
      <img src="https://www.rakuten.ne.jp/gold/ryobu/fuzita/page/top/case/9.png">
    </figure>
    <figure data-color="#3f3f3f, #3f3f3f">
      <img src="https://www.rakuten.ne.jp/gold/ryobu/fuzita/page/top/case/8.png" >
    </figure>

  </div>

  <div class="cta">
    <div class="price">?1,280-</div>
    <a href=""><button class="btn">商品ページへ<span class="bg"></span></button></a>
  </div>
</div>
<div class="bg"></div>

</CENTER>
</body>
@charset "EUC-JP";

/*--------------------
Mixins
---------------------*/
/*--------------------
Body
---------------------*/
*,
*::before,
*::after {
  box-sizing: border-box;
}

body,
html {
  height: 100%;
  font-family: "Open Sans Condensed", sans-serif;
}

/*--------------------
Shop Card
---------------------*/
.shop-card {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 350px;
  background: #f5f5f5;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
  overflow: hidden;
  border-radius: 5px;
  padding: 25px;
  text-align: center;
  z-index: 2;
}
.shop-card figure {
  margin: 0;
  padding: 0;
  overflow: hidden;
  outline: none !important;
}
.shop-card figure img {
  margin: -95px 0 -60px;
  width: 100%;
}
.shop-card .title {
  font-weight: 900;
  text-transform: uppercase;
  font-size: 30px;
  color: #23211f;
  margin-bottom: 5px;
}
.shop-card .desc {
  font-size: 17px;
  opacity: 0.8;
  margin-bottom: 3px;
}
.shop-card .cta {
  padding: 20px 20px 5px;
}
.shop-card .cta::after {
  content: "";
  display: table;
  clear: both;
}
.shop-card .price {
  float: left;
  color: #FF3100;
  font-size: 22px;
  font-weight: 900;
  padding-top: 2px;
  transition: color 0.3s ease-in-out;
  margin-top: 4px;
}
.shop-card .btn {
  position: relative;
  z-index: 1;
  float: right;
  display: inline-block;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  color: #FF3100;
  padding: 12px 18px;
  cursor: pointer;
  transition: all 0.3s ease-in-out;
  line-height: 0.95;
  border: none;
  background: none;
  outline: none;
  border: 1px solid #FF3100;
  border-radius: 20px;
  overflow: hidden;
}
.shop-card .btn .bg {
  width: 101%;
  height: 101%;
  display: block !important;
  z-index: -1;
  opacity: 0;
  transition: all 0.3s ease-in-out;
  background: linear-gradient(135deg, #a61322, #d33f34);
}
.shop-card .btn:hover {
  color: #fff !important;
  border: 1px solid transparent !important;
}
.shop-card .btn:hover .bg {
  opacity: 1;
}

/*--------------------
Slick Dots
---------------------*/
.slick-dots {
  bottom: -30px;
}
.slick-dots a {
  position: relative;
  display: block;
  width: 16px;
  height: 16px;
}
.slick-dots span {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
}
.slick-dots circle {
  fill: none;
  stroke-width: 1;
  stroke-linecap: round;
  stroke-dasharray: 39 39;
  stroke-dashoffset: 39;
  transition: all 0.9s ease-in-out;
  transition: stroke-dashoffset 0.5s;
}
.slick-dots .slick-active circle {
  stroke-dashoffset: 0;
}

/*--------------------
Background
--------------------*/
.bg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  background: linear-gradient(15deg, #d33f34 50%, #a61322 50.1%);
  z-index: 1;
  display: none;
}

.the-most {
  position: fixed;
  z-index: 1;
  bottom: 0;
  left: 0;
  width: 50vw;
  max-width: 200px;
  padding: 10px;
}
.the-most img {
  max-width: 100%;
}

どうしたら$slider = $('.slider');以降を読み込んでくれますでしょうか。
テスト先のページURLも添付致します。test

前回に回答してくださった皆様ありがとうございます。2度目の投稿の上長くなってしまい申し訳ございませんが、質問するに対し至らない点が多いかと思いますがわかる方がいらっしゃいましたらどうかよろしくお願い致します。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

公開されているテストファイルを見てみましたが、
エラーは出ていませんでした。なんでかなーと思ってよく見たら、
test.jsの中身がjQeuryの実行コードとして認識されていないため、無視されている状態でした。

test.jsの中身全てを、以下のjQuery実行用のコードの中に入れてください。(※スペルミス注意)
それでとりあえずslick自体は適用されるようになります。

$(function(){

//ここに今のJSコードを入れる

});


ただし、スライダーのレイアウトとしては多分崩れているので、
ここからCSSを調整したりとかいろいろ先は長そうです。

jQueryの使い方の基礎が分かっていないようなので、
とりあえず小一時間グーグル先生に「jQueryとは」と尋ねてサラッと勉強してみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/25 09:35

    無事読み込んでくれました!記述のルールがよくわからないまま進めていたので丁寧に教えて頂けて助かりました。今から調べた後CSSで調整を行っていきます。もう一件の質問でもエラーの調べ方を教えて頂きありがとうございました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る