
初めまして、ホームページ制作勉強中の初心者です。
■サムネイルにマウスオーバーすると、離れた位置に拡大画像を表示する
■サムネイルからのマウスアウトで、最初の拡大画像に戻す。
http://bitd.webcrow.jp/rollover/DW/rollover.html
といった上記のようなトップイメージを作ったのですが
拡大画像はカチッと切り替わるのではなく、ふわっと切り替えたいです。
しかし、思うようにhtml,cssが組めず悩んでおります。
(切り替わりの感じとしては↓下記サイト↓のようなイメージです。)
http://blog.net-king.com/downloads/imagenavigati …
最下位が提案したhtml,cssですが、どこをどのように、触ればいいのか
ご教授いただければ幸いです。
(あるいはjsを使って
http://blog.net-king.com/2010/10/06/%e3%83%a1%e3 …
や
http://tenderfeel.xsrv.jp/javascript/271/
の下のほうにある「複数設置+クロスフェード」
を改変して同じようなものを作る。でもOKです。)
どうか、よろしくお願い致します。
■html
<head>
<title>サムネイルにマウスオーバーしたら画像を切り替える</title>
<link rel="stylesheet" href="css/rollover.css" type="text/css" media="all" />
</head>
<body>
<div id="container">
<ul>
<li><img src="images/B2.jpg" width="316" height="45" alt="01"
onMouseOver="document.mainImg.src='images/B1.jpg'"
onMouseOut="document.mainImg.src='images/A1.jpg'"></li>
<li><img src="images/C2.jpg" width="316" height="45" alt="02"
onMouseOver="document.mainImg.src='images/C1.jpg'"
onMouseOut="document.mainImg.src='images/A1.jpg'"></li>
<li><img src="images/D2.jpg" width="316" height="45" alt="03"
onMouseOver="document.mainImg.src='images/D1.jpg'"
onMouseOut="document.mainImg.src='images/A1.jpg'"></li>
</ul>
<p class="main"><img src="images/A1.jpg" width="950" height="auto" alt="01" name="mainImg"></p>
</div>
</body>
</html>
■css
@charset "UTF-8";
/* CSS Document */
body, div, ul, li, img, a {
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
a {
text-decoration: none;
}
#container {
width: 950px;
margin: 0 auto;
}
p.main {
width: 950px;
height: auto;
padding: 0;
}
ul {
width: 950px;
margin: 0;
}
ul li {
float: left;
width: 316px;
height: 45px;
margin-left: 0;
}
img {
cursor: pointer;
border: none;
vertical-align: bottom;
}
No.4ベストアンサー
- 回答日時:
一応確認した手前、サンプルだけあげておきます
<style>
#mainImg img{position:absolute;}
</style>
<script src="js/jquery.js"></script>
<script>
$(function(){
var org_src="1.jpg";
var list=['2.jpg','3.jpg','4.jpg'];
var speed=1000;
$('ul.menu li').on('mouseover mouseout',function(e){
var num=$('ul.menu li').index(this);
var img_src=(e.type=="mouseover")?list[num]:org_src;
$('#mainImg img').first().css('z-index',1);
$.when(
$('<img src="'+img_src+'">').insertBefore($('#mainImg img').first()).css('z-index',2).hide().fadeIn(speed)
).done(function(){
$('#mainImg img').each(function(){
if($('#mainImg img').index(this)!=0) $(this).remove()
})
});
});
});
</script>
<ul class="menu">
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<p id="mainImg">
<img src="1.jpg">
</p>
※liに対応するlistを設定しておきます
考え方はリストのmouseoverしたときに所定のimgの前に画像を差し込み深度を調整。
一度けして徐々に表示し、表示が終わった時点で元の画像を削除します
mouseoutの際にはorg画像を表示します
No.3
- 回答日時:
今は基本的にはjavascript(JQuery)は使わない方向になっています。
・javascriptを停止している、あるいは利用できないユーザに意味ない
・他のデザインに変更するのが困難
・ユーザーエージェントごとにデザインを変えることが不可能(極めて困難)
単純に
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
とマークアップして・・CSSでデザインする。
★d="container" こんな文書構造にかかわらないバカなことは書かない。
>しかし、思うようにhtml,cssが組めず悩んでおります。
HTML(略字ですから大文字)は文書構造しか書かないので、簡単なのでは?
<body>
<header>
<h1>・・<h1>
<nav>
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</nav>
どこがむつかしいかわからないです。
なお、HTML4では文書構造を示す要素がなかったので、
<body>
<div class="header">
<h1>・・<h1>
<div class="nav">
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</div>
とマークアップしてきました。
「DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )」
もう20年も前に出された勧告ですから
CSSはその文書構造に基づいてセレクタを使って要素を指定して、プレゼンテーションを指定するだけ。
★ media="all"
はありえない。あくまでscreenのみですよ。点字端末やスクリーンリーダー、あるいは印刷には適用されてはまずい!!
とりあえず基本形を作ってみる。
★Another HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html# )
のDATAでHTMLの文法チェックをしておく
<!doctype html>
<html>
<head>
_<meta charset="utf-8">
_<title>サンプル</title>
_<meta name="description" content="">
_<meta name="author" content="ORUKA">
<style media="screen">
<!--
/* header の子孫の nav 要素 */
header nav{width:600px;height:320px;margin:0 auto;}
/* その子孫の ul要素 */
header nav ul{margin:0;padding:0;position:relative;border:1px gray solid;}
/* さらにその子孫の li要素 */
header nav ul li{
_list-style:none;
_width:200px;height:80px;
_margin:0;padding:0;
_line-height:80px;
_border:1px gray solid;
_position:relative;/* 以下の位置やサイズの基本にするため */
}
header nav ul li a{
_display:block;
_width:100%;height:100%;
_text-decoration:none;
}
-->
</style>
</head>
<body>
_<header>
__<h1 id="title">Your title</h1>
__<nav>
___<ul>
____<li><a href="/">トップ</a></li>
____<li><a href="/products">製品</a></li>
____<li><a href="/profile">会社案内</a></li>
____<li><a href="/contactUs">問い合わせ</a></li>
___</ul>
__</nav>
_</header>
_<section>
__<h2>A smaller heading</h2>
__<p>
__</p>
__<aside>
___<h3>Something aside</h3>
__</aside>
_</section>
_<footer>
__<h3>A nice footer</h3>
_</footer>
</body>
</html>
No.2
- 回答日時:
こんにちは
ごく単純なサンプルです。(jQuery利用)
※ HTMLの構成はご提示の構成を利用しています
※ UL(サムネイル)内の画像に対して有効です。数は増減してもかまいません
※ サムネイル要素のdata-src属性に拡大表示する画像のURLを設定します
※ 切り替えの速度は変数speed(単位:ミリ秒)で調整可能です
※ CSSは最低限にしてありますので、サムネイルのレイアウト等はご自由に
(スクリプトのインデントは全角空白に変えてありますので、半角にしてください)
<!DOCTYPE HTML PUBLIC>
<html lang="ja">
<head><title>Sample</title>
<style type="text/css">
#container ul img { width:316px; height:45px; }
#container p.main { position:relative; }
#container p.main img { position:absolute; top:0; left:0; width:950px; }
</style>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.9. …
<script type="text/javascript">
$(function(){
var speed = 600; /* 切替え速度(msec) */
var box = $("#container p.main"), imgs;
var thumbs = $("#container ul img"), img0 = $("img", box);
thumbs.each(function(){
img0.clone().prop("src", $(this).data("src")).appendTo(box);
});
img0.appendTo(box);
imgs = $("img", box);
thumbs.on("mouseover mouseout", function(e){
var index = imgs.length-1;
if(e.type == "mouseover") index = thumbs.index(this);
imgs.stop().each(function(i){
if(i == index) $(this).animate({ opacity: 1 }, speed);
else $(this).animate({ opacity: 0 }, speed);
});
});
});
</script>
</head>
<body>
<div id="container">
<ul>
<li><img src="img/photo01.jpg" alt="01" data-src="img/photo04.jpg"></li>
<li><img src="img/photo02.jpg" alt="02" data-src="img/photo05.jpg"></li>
<li><img src="img/photo03.jpg" alt="03" data-src="img/photo06.jpg"></li>
</ul>
<p class="main">
<img src="img/photo01.jpg" alt="">
</p>
</div>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS htmltとcssの連携をして画像縮小について 1 2022/11/15 20:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
html/cssの、navを2段にする...
-
<ul>タグで各<li>の中身を横方...
-
画像横のテキストをセンターに...
-
複数行にまたがる括弧を表示し...
-
透明のボックスにリンクを貼りたい
-
ページを開いているときのリン...
-
htmlの<ol>タグで、数字などを...
-
背景色を行ごとに変えるには?
-
更新履歴の作り方
-
css 横並びのナビゲーションバ...
-
テーブル内のプルダウンの下に...
-
header と nav の隙間を埋めたい。
-
疑似クラス :activeが効きません
-
line-heightで行間を文字サイズ...
-
liタグの中に<p>タグやら<dl>を...
-
CSSのみでのロールオーバーにつ...
-
リストマーカーをボックス内に...
-
円形の配置にするコーディング...
-
Listの中に<br>を入れてはダメ...
-
リストタグ以外でfloatしたもの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リストマーカーをボックス内に...
-
html/cssの、navを2段にする...
-
ulタグやliタグの中でbrタグ...
-
liタグの中に<p>タグやら<dl>を...
-
リストの数字のフォントサイズ...
-
画像にリンクを張ると画像がず...
-
複数行にまたがる括弧を表示し...
-
レスポンシブWebデザインでリン...
-
HTMLで組織図を作成する方法
-
html <ul></ul>の並びで一行空...
-
htmlの<ol>タグで、数字などを...
-
divタグ内のコンテンツが重なっ...
-
ページを開いているときのリン...
-
ドロップダウンメニューが隠れ...
-
【CSS】メニュー上部に固定させ...
-
<ul><li></li></ul>にするメリ...
-
番号付きリスト(<Ol><Li>・・...
-
ulとliで囲った文字の一部を変...
-
list-style-type部分だけ大きく...
-
<li>の中の<h>だから!ルール違...
おすすめ情報