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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

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

Q&A

1回答

921閲覧

マウスオーバーで画像を入れ替える方法

kouji_piano

総合スコア13

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

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

0グッド

1クリップ

投稿2019/06/23 22:25

編集2019/06/25 04:30

前提・実現したいこと

WordPressでホームページをつくっています。
以下のページにあるGoogleMapにマウスオーバーで画像を入れ替えたいです。

http://www.asobinomori.org/access

発生している問題・エラーメッセージ

もともとテーマについていたjscript.jsというスクリプトが読み込んでしまい、 読み込ませたいmain.jsというスクリプトが読み込んでくれません。

該当のソースコード

jQuery

1smartRollover() { 2 if(document.getElementsByTagName) { 3 var images = document.getElementsByTagName("img"); 4 5 for(var i=0; i < images.length; i++) { 6 if(images[i].getAttribute("src").match("_off.")) 7 { 8 images[i].onmouseover = function() { 9 this.setAttribute("src", this.getAttribute("src").replace("_off.", "_on.")); 10 } 11 images[i].onmouseout = function() { 12 this.setAttribute("src", this.getAttribute("src").replace("_on.", "_off.")); 13 } 14 } 15 } 16 } 17} 18 19if(window.addEventListener) { 20 window.addEventListener("load", smartRollover, false); 21} 22else if(window.attachEvent) { 23 window.attachEvent("onload", smartRollover); 24} 25 26// cross fade 27 28new function(){ 29 function setRollOver2(){ 30 if(!document.images){return;} 31 var imgs = document.images; 32 var insert = []; 33 for(var i=0;i<imgs.length;i++){ 34 var splitname = imgs[i].src.split('_off.'); 35 if((splitname[1])&&(imgs[i].parentNode.tagName=='A')){ 36 var rolloverImg = document.createElement('img'); 37 rolloverImg.src = splitname[0]+'_on.'+splitname[1]; 38 var alpha = 0; 39 rolloverImg.currentAlpha = alpha; 40 rolloverImg.style.opacity = alpha/100; 41 rolloverImg.style.filter = 'alpha(opacity='+alpha+')'; 42 rolloverImg.style.position = 'absolute'; 43 44 addEvent(rolloverImg,'mouseover',function(){setFader(this,100);}); 45 addEvent(rolloverImg,'mouseout',function(){setFader(this,0);}); 46 47 insert[insert.length] = {position:imgs[i],element:rolloverImg}; 48 } 49 } 50 for(var i=0;i<insert.length;i++){ 51 var parent = insert[i].position.parentNode; 52 parent.insertBefore(insert[i].element,insert[i].position); 53 } 54 } 55 56 function setFader(targetObj,targetAlpha){ 57 targetObj.targetAlpha = targetAlpha; 58 if(targetObj.currentAlpha==undefined){ 59 targetObj.currentAlpha = 100; 60 } 61 if(targetObj.currentAlpha==targetObj.targetAlpha){ 62 return; 63 } 64 if(!targetObj.fading){ 65 if(!targetObj.fader){ 66 targetObj.fader = fader; 67 } 68 targetObj.fading = true; 69 targetObj.fader(); 70 } 71 } 72 73 function fader(){ 74 this.currentAlpha += (this.targetAlpha - this.currentAlpha)*0.2; 75 if(Math.abs(this.currentAlpha-this.targetAlpha)<1){ 76 this.currentAlpha = this.targetAlpha; 77 this.fading = false; 78 } 79 var alpha = parseInt(this.currentAlpha); 80 this.style.opacity = alpha/100; 81 this.style.filter = 'alpha(opacity='+alpha+')'; 82 if(this.fading){ 83 var scope = this; 84 setTimeout(function(){fader.apply(scope)},30); 85 } 86 } 87 88 function addEvent(eventTarget, eventName, func){ 89 if(eventTarget.addEventListener){ 90 eventTarget.addEventListener(eventName, func, false); 91 }else if(window.attachEvent){ 92 // IE 93 eventTarget.attachEvent('on'+eventName, function(){func.apply(eventTarget);}); 94 } 95 } 96 97 addEvent(window,'load',setRollOver2); 98

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

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

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

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

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

yambejp

2019/06/24 01:02

コードがマークアップされていません、調整ください jQueryのタグが付いていますがピュアなjsで処理を希望していますか?
kouji_piano

2019/06/24 11:52 編集

ピュアなjsで処理が希望です。
kouji_piano

2019/06/24 23:40

ごめんなさい。マークアップという意味がわかりません。よろしければやり方を教えて頂けないでしょうか
yambejp

2019/06/25 00:15

> ピュアなjs jQueryタグをjavascriptタグに付け替えてください > マークアップ あ、ごめんなさい、正しくはマークダウンですね ソースの部分の前後の行にバックスラッシュ3つ「```」を挿入します ソースを「ここがソースですよー」と明示することです。 質問時に「Markdown記法」について下にヘルプが表示されているので参照してください
guest

回答1

0

直接の答えではありませんが、
main.jsが読み込まれていないのは、他のライブラリのせいではなく
main.js内にエラーがあるからだと思われます。

1行目:関数定義になっていないので修正

javascript

1smartRollover(){ 2 ↓ 3function smartRollover(){

中段

javascript

1new function(){

の閉じ}がない

というより、そもそも文法がおかしい気がしますので
「new function(){」を削除すれば良いかと思います。

投稿2019/06/26 08:59

webgoto

総合スコア1293

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問