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

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

ただいまの
回答率

89.64%

footerをhoverでframeを表示。 ieだけiframe上にマウスhoverするとユラユラゆれてクリックできない。JS、JQで対応策をお願いします。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 2
  • VIEW 2,580

rrryo719719

score 11

こんにちは。

表題の件、たいへん困っております。
コードをまるごとコピペしてご覧ください。
下部に横広いfooterをマウスhoverすると、上に伸び、3つのiframe表示されるのでクリックでそのページに飛べるようにしたいのです。
Chome、FFは問題ないのですが、ieだけiframe上にhoverするとユラユラして、クリックできません。

■jsでの対策、またはコードの記述による対応策
■スマホ表示でhoverはPCのようにマウスポイントをずらしても閉じないので、右上に「×マーク」をつけてfancyboxのように閉じれるようにしたい。

以上2点、対応策をお願い致します。

※footer上部は実際にはfb、insta、youtubeのマーク画像が入っています。
※現在のiframe内容はダミーです。


初心者なので、、言葉の説明だけでなくコードでいただけると助かります。
宜しくお願い致します。

<html>
<head>

</head>

<style>
/*footer ▼-*/
#timeline{
    margin-left:50px;
    margin-top:0px;
    padding-top:0px;
    background:#FFFFFF;
    }

#snapwidget{
margin-left:10px;
}

#youtube{
padding-top:0px;
    margin-top:0px;
margin-left:7px;
}



/*fb,insta,youtube
マークの場所配置 ▼*/
#facebook {
    margin-left:1000px;
    margin-bottom:0px;
    padding-bottom:0px;
    margin-top:3px;
    }
#copyright{
            padding-top:0px;
    margin-top:0px;
    margin-right:46px;
    float:right;
}



/*footer クラスhover    色の設置▼*/
footer.hover{

    position: fixed !important;
    position: absolute;
    width:100%;
    bottom:0px;
    background:#CCC;
    background: linear-gradient(#a9a9a9 0%, #fff 40%);
          /*Chrome Safari用*/
    background: -webkit-linear-gradient(#cccccc 0%, #fff 40%);
    /*Forefox用*/
    background: -moz-linear-gradient(#ccc 0%, #fff 40%);
    /*Opera*/
    background: -o-linear-gradient(#ccc 0%, #fff 40%);
    /*IE6-9用*/
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#ffffff',GradientType=0 );
    /*IE10用*/
    background: -ms-linear-gradient(#ccc 0%, #fff 40%);
    opacity: 0.9;
    height:40px;
    -moz-transition: 0.5s linear;
    -webkit-transition: 0.5s linear;
    transition: 0.5s linear;
}

/*footerをhoverした時 伸びる高さ*/


footer:hover{
 height:365px;


}
/*footer ▲-*/
</style>

<body>

<!--footer ▼-->
<footer class="hover">
<!-- facebookマーク画像の設定 -->
<img id="facebook" src="images/facebook2.png"  width="35" height="35"alt="cloud"/>
<!-- timeline -->
  <iframe id="timeline" src="http://www.facebook.com/plugins/likebox.php?href=https%3A%2F%2Fwww.facebook.com%2Fhazukikouei&amp;width=500&amp;height=300&amp;colorscheme=light&amp;show_faces=true&amp;header=false&amp;stream=true&amp;show_border=false&amp;appId=745976198821640" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:300px;" allowTransparency="true"></iframe>

<!--  Insta  SnapWidget -->
<iframe src="http://snapwidget.com/in/?u=eXVraWFveWF8aW58MTI1fDJ8Mnx8bm98Mnxub25lfG9uU3RhcnR8eWVzfG5v&ve=250615" title="Instagram Widget" class="snapwidget-widget" allowTransparency="true" frameborder="0" scrolling="no" style="border:none; overflow:hidden; width:224px; height:305px"></iframe>

<!-- youtube -->
<iframe id="youtube" width="500" height="303" src="https://www.youtube.com/embed/2v9GnDiBGyQ" frameborder="0" allowfullscreen></iframe>
<p id="copyright">©2014aaaaa.All Rights Reserved</p>

</footer>


<!--footer ▲-->
</body>
</html>>
コード
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 2

+1

以下にコードを示します。
//ユーザエージェントを利用
var ua = {
    iPhone : navigator.userAgent.toLowerCace().indexOf('iphone') != -1,
    iPad : navigator.userAgent.toLowerCase().indexOf('ipad') != -1,
    iPod : navigator.userAgent.toLowerCase().indexOf('ipod') != -1,
    android : navigator.userAgent.toLowerCase().indexOf('android') != -1,
    windows : navigator.userAgent.toLowerCase().indexOf('windows phone') != -1
}
$(function(){
    //ホバー処理
    $("footer").hover(function(){
        $(this).animate({"height":395},"fast");
    },
    function(){
        $(this).animate({"height":40},"fast");
    });
    //スマートデバイスを判定
    if(ua.iPhone || ua.iPad || ua.iPod || ua.android || ua.windows){
        $("閉じるマークのセレクタ").show();
    } else {
        $("閉じるマークのセレクタ").hide();
    }
    //閉じるタップイベント
    $("閉じるマークのセレクタ").on("tap", function(e){
        $("footer").animate({"height":40},"fast");
    });
});
jQueryを利用しています。最低でも1.7以上を使用してください。
分からなければ、コメントください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/07/08 17:14

    iframeに効くイベントを設定する必要はありません。
    おそらくですが、hoverを記述しているスクリプトより前にスクリプトエラーが発生しています。
    IEでF12を押すと、コンソール等を確認できます。
    そちらで、スクリプトエラーが出てないかどうかを確認してください。

    キャンセル

  • 2015/07/11 00:40

    ご教示いただいたJQを記述しているとスクリプトエラーがでます。
    JQ削除するとエラーはでませんが、iframeの3つ(FB、インスタ、youtube)がF12で確認するとコンソール×となります。
    しかし、スクリプトエラーはJQ記述している他のサイトでもよく出ます。
    スクリプトエラーとIEのhover内iframeがクリックできないのとは、関係ないように思うのですが。

    キャンセル

  • 2015/07/11 00:42

    jQuery記述時のエラーの内容を教えてください。

    キャンセル

checkベストアンサー

0

ごめんなさい、解決策の回答ではないです。

IE では iframe タグに対して hover が効かないそうです。

ゆらゆらする原因は、マウスカーソルが footer の要素範囲内では hover が効いて上に移動するものの、iframe の要素範囲内に入ると hover が効かなくなるので下に移動し、また footer 要素範囲に戻るので上に移動、また iframe の要素範囲に入って下に移動 ・・・ を繰り返しているためです。

例えば、footer の左右の余白部分(iframe要素が無いところ)にマウスカーソルが乗っていれば、他種ブラウザと同様にスムーズに footer が出現すると思います。

jquery でなんとかする方法を見つけましたが、これがうまくいくかは試していません。
一応ご参考までに。
http://umai-bow.hateblo.jp/entry/2014/09/19/232717


投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

  • ただいまの回答率 89.64%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる
  • トップ
  • JavaScriptに関する質問
  • footerをhoverでframeを表示。 ieだけiframe上にマウスhoverするとユラユラゆれてクリックできない。JS、JQで対応策をお願いします。