前提・実現したいこと
deSVGを使用して、画像の色を塗り替えようと思い、<img>タグに設定したpngをsvgに変換し、画像の色のぬりかえを適用したいです。
以前に一度は成功したことはあるのですが、今回はじめて画像そのものが表示されない状況になりました。
ぜひご教授よろしくお願いいたします。
発生している問題・エラーメッセージ
svg画像が表示されない
該当のソースコード
HTML
1<!DOCTYPE html> 2<html> 3 <body> 4 <script type="text/javascript"> 5 (function(add, cla){window['UserHeatTag']=cla;window[cla]=window[cla]||function(){(window[cla].q=window[cla].q||[]).push(arguments)},window[cla].l=1*new Date();var ul=document.createElement('script');var tag = document.getElementsByTagName('script')[0];ul.async=1;ul.src=add;tag.parentNode.insertBefore(ul,tag);})('//uh.nakanohito.jp/uhj2/uh.js', '_uhtracker');_uhtracker({id:'uh7EsByhxp'}); 6 7 8 </script> 9 <head> 10 <link rel="stylesheet" href="../src/css/reset.css"/> 11 <link rel="stylesheet" href="css/style.css"/> 12 <link rel="stylesheet" href="css/header.css"/> 13 <link rel="stylesheet" href="css/tab.css"/> 14 <link rel="stylesheet" href="css/sp.css"/> 15 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> 16 <script src="../dest/js/main.js"></script> 17 <link rel="preconnect" href="https://fonts.gstatic.com"/> 18 <meta name="viewport" content="width=device-width,initial-scale=1"/> 19 </head> 20 <main> 21 <header> 22 <div class="header-inner"> 23 <nav class="header-nav flex-box"><a href="#"><img class="logo" src="../img/top-header-logo.svg"/></a> 24 <div class="header-wrapper"> <a href="#">お部屋</a><a href="#">お料理</a><a href="#">温泉</a></div> 25 </nav><a class="header-btn" href="#"> <img class="carender-img" src="../img/calender-min.png"/> 26 <p>宿泊予約</p></a> 27 </div> 28 </header> 29 (中略) 30 <script src="//cdn.jsdelivr.net/npm/desvg@1.0.2/desvg.min.js"></script> 31 </body> 32</html>
該当のソースコード
CSS
1ソースコード
該当のソースコード
SCSS
1.logo{ 2 padding-right:6vw; 3} 4 5.black{ 6 .logo path { 7 fill: #ffff00; /* 塗りつぶしの色 */ 8 stroke: #ff0000; /* 枠線の色 */ 9 } 10} 11
該当のソースコード
js
1//ハンバーガーメニュ 2 3/* document.querySelector('.burger-musk').style[display] = 'none'; */ 4 5$(function() { 6 var imgHeight = $('.fv-img').outerHeight(); 7 //トップ画像の高さを取得 8 var bgHeight = $('.fv-wrapper').outerHeight(); 9 //ファーストビュー全体の高さを取得 10 11//imgをsvg化する 12window.addEventListener('load', function(){ 13 deSVG('.logovision', true); 14 }); 15 16//スクロールした時に文字色を変化させる 17$(window).on('load scroll', function () { 18 if ($(window).scrollTop() < imgHeight - 50) { 19 $('.site-logo').removeClass('black'); 20 } else { 21 $('.site-logo').addClass('black'); 22 23 } 24 25 if ($(window).scrollTop() < bgHeight - 50) { 26 //メインビジュアル内にいるならクラスを外す 27 $('.burger-btn').removeClass('black'); 28 $('.header-wrapper').removeClass('js-scrolled'); 29 $('header').removeClass('js-scrolled'); 30 } else { 31 //そうではなく、メインビジュアル外にいたらクラスを付けて色を変える 32 $('.burger-btn').addClass('black'); 33 $('.header-wrapper').addClass('js-scrolled'); 34 $('header').addClass('js-scrolled'); 35 } 36}); 37}); 38//document.querySelector('.burger-musk').style.display = 'none'; 39 // 40 alert('OK'); 41//////この記述をしてOKが出ればこれより前の箇所に異常はない
試したこと
pngの拡張子を手動でsvgに書き換える
→表示されなくなった
コンバーター?(png→svg変換サイト)を利用しての変換
→変わらず表示されない。pngの時はgulpの機能のおかげか圧縮のminがついていたので、その成果と思ったがminなしの圧縮していないsvgにしてもダメでした。
以前に一度成功したことのある自身のコードを観察・必要な個所を書き換えて試してみる
→見落としがなければ同様にやっているつもりだが、代わらず表示されない
違いがあるとすれば前回はgulpやpug等は使用していないこと。
画像を入れているフォルダ名が若干違い、「img」フォルダ[image]フォルダであること。
前回はなかったのに対し、今回はg要素がsvgの下層にできてしまっていること。(調べたところグループのようだが、前回同様svgにしたのは一つしかない)
クロームでsvgが表示されない
→このような記事も見かけましたが、該当箇所が見つけられないのと、そもそも前回同じツールを利用した際にこのような処理をしていないが成功して記憶があるので関係は低いと考えています。
この一番左側の幅がロゴなので存在はしているものと思われます。
補足情報(FW/ツールのバージョンなど)
OS:Windows
エディタ:VScode
ブラウザ:クローム