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

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

新規登録して質問してみよう
ただいま回答率
85.47%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

2582閲覧

Matter.jsを使ったcanvasで描画した円をクリックしたらリンクに飛ぶようにし、canvasの背景を透過したい。

okomekei02

総合スコア12

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1グッド

1クリップ

投稿2020/03/12 08:04

今あるサイトのトップページを作っているのですが、Matter.jsを使ったcanvasで描画した円をクリックしたら別ページのリンクに飛ぶようなものを実装したいのですが、どうすれば良いかわかりません。。。。
こんなイメージです!
[イメージ説明

かつ、canvasの背景を透過させ、円のみ見えるようにするにはどうすれば良いでしょうか?
cssでcanvasのbackground-color: transparent;をやってもそのcssが効いてくれず、困っています。
イメージ説明

html

1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <meta charset="UTF-8"> 6 <link rel="stylesheet" href="style.css"> 7 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 8 9 <script src="https://cdnjs.cloudflare.com/ajax/libs/matter-js/0.14.2/matter.min.js"></script> 10 <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0,minimal-ui"> 11 <title>test</title> 12 13</head> 14 15<body> 16<img src="./stand1.gif" class="icon"> 17 <canvas id="space"></canvas>//このcanvasの背景を透過して下にあるstand1.gifが見えるようにしたい!!!!!!!!! 18 19   <script type="text/javascript"> 20 var Engine = Matter.Engine, 21 Render = Matter.Render, 22 Runner = Matter.Runner, 23 World = Matter.World, 24 Bodies = Matter.Bodies; 25 26 // create engine 27 var engine = Engine.create(), 28 world = engine.world; 29 30 31 32 var winWidth = screen.width; 33 var winHeight = screen.height; 34 35 // レンダリング対象のキャンバス 36 var canvas = document.getElementById('space'); 37 38 var MouseConstraint = Matter.MouseConstraint, 39 Mouse = Matter.Mouse; 40 41 // create renderer 42 var render = Render.create({ 43 element: document.body, 44 canvas: canvas, 45 engine: engine, 46 options: { 47 width: winWidth, 48 height: winHeight, 49 wireframes: false, 50 showAngleIndicator: false 51 } 52 }); 53 54 var mouse = Mouse.create(render.canvas), 55 mouseConstraint = MouseConstraint.create(engine, { 56 mouse: mouse, 57 constraint: { 58 stiffness: 0.2, 59 render: { 60 visible: false 61 } 62 } 63 }); 64 World.add(world, mouseConstraint); 65 66 // keep the mouse in sync with rendering 67 render.mouse = mouse; 68 69 70 71 Render.run(render); 72 73 // create runner 74 var runner = Runner.create(); 75 Runner.run(runner, engine); 76 77 78 //円のオブジェクト作成。これをクリックしたら別ページに飛びたい。。。。。。。。。。 79 80 var maru = Bodies.circle(300, 0, 44, { 81 restitution: 1, 82 render: { 83 fillStyle: '#F08E8F', //中身の色 84 strokeStyle: '#007FFF', //線の色 85 lineWidth: 5, //線の太さ 86 sprite: { //スプライトの設定 87 texture: 'twitter.png', //テクスチャ画像を指定 88 xScale: 0.1, 89 yScale: 0.1 90 } 91 92 } 93 }); 94 95 var maru2 = Bodies.circle(300, 0, 50, { 96 restitution: 1, 97 render: { 98 fillStyle: '#F08E8F', //中身の色 99 strokeStyle: '#007FFF', //線の色 100 lineWidth: 5, //線の太さ 101 102 } 103 }); 104 105 var yuka = Bodies.rectangle(400, 350, 2000, 30, { 106 isStatic: true 107 }); 108 109 110 World.add(world, [ 111 maru, 112 yuka, 113 maru2 114 ]); 115 </script> 116 117</body> 118 119</html>

css

1 2 3 4.icon{ 5 position: absolute; 6 7} 8 9canvas{ 10 position:absolute; 11 background-color:transparent; 12/* こいつが効かない。なんで......?*/ 13 14} 15 16
s.k👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/03/12 08:22

svgとかではダメですかね?
guest

回答1

0

ベストアンサー

ドキュメントを読むと background オプションがあるのでこれを指定します。

JavaScript

1 options: { 2 width: winWidth, 3 height: winHeight, 4 wireframes: false, 5 showAngleIndicator: false, 6 background: 'transparent' 7 }

https://github.com/liabru/matter-js/wiki/Rendering#options

投稿2020/03/12 08:25

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

okomekei02

2020/03/12 08:35

ありがとうございます!とても助かりました!こんなに簡単なことだったんですね。。気をつけます。。笑 ちなみに円をクリックしたらリンクに飛ぶ方法などはわかりますでしょうか?
okomekei02

2020/03/12 16:47

ありがとうございます!本当に助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問