我试图设置一个页面,看起来像下面的图像。悬停并点击链接替换图片
下面是部分; S挂了我...
我想有主图像时替换I“悬停”或它下面的一个链接“点击”。主图像下面的每个链接都会有它自己的特定图像。然后,我想让链接图像“打开”/关闭。
我试图用纯CSS做这个,而且真的很难。
感谢您的帮助。
我试图设置一个页面,看起来像下面的图像。悬停并点击链接替换图片
下面是部分; S挂了我...
我想有主图像时替换I“悬停”或它下面的一个链接“点击”。主图像下面的每个链接都会有它自己的特定图像。然后,我想让链接图像“打开”/关闭。
我试图用纯CSS做这个,而且真的很难。
感谢您的帮助。
HTML:
<div id="output"></div>
<ul id="nav">
<li data-href="http://placekitten.com/120/100">Cat 1</li>
<li data-href="http://placekitten.com/110/100">Cat 2</li>
<li data-href="http://placekitten.com/130/100">Cat 3</li>
<li data-href="http://placekitten.com/150/100">Cat 4</li>
</ul>
的JavaScript:
$(nav).on('click', 'li', function() {
$(this).addClass('selected').siblings().removeClass('selected');
var url = $(this).data('href');
$(output).html('<img src="' + url + '">');
});
现场演示:http://jsfiddle.net/Kne3d/
HTML:
<div id="output">
<img id="image1" src="http://placekitten.com/120/100">
<img id="image2" src="http://placekitten.com/130/100">
<img id="image3" src="http://placekitten.com/110/100">
<img id="image4" src="http://placekitten.com/140/100">
</div>
<ul id="nav">
<li><a href="#image1">Cat 1</a></li>
<li><a href="#image2">Cat 2</a></li>
<li><a href="#image3">Cat 3</a></li>
<li><a href="#image4">Cat 4</a></li>
</ul>
CSS:
#output img {
display: none;
}
#output img:target {
display: inline;
}
现场演示:http://jsfiddle.net/Kne3d/3/
HTML:
<ul id="gallery">
<li>
<span>Cat 1</span>
<img src="http://placekitten.com/120/100">
</li>
<li>
<span>Cat 2</span>
<img src="http://placekitten.com/150/100">
</li>
<li>
<span>Cat 3</span>
<img src="http://placekitten.com/110/100">
</li>
<li>
<span>Cat 4</span>
<img src="http://placekitten.com/140/100">
</li>
</ul>
CSS:
#gallery img {
display: none;
}
#gallery span:hover ~ img {
display: block;
}
尝试使用本指南。 Image Change on Hover。它实现了mousehover。您只需要更改背景:网址而不是背景位置即可完成。
这个链接是为您的点击有点像一个完整的实施On MouseClick。你实际上只需要注册一个你想通过CSS路线的点击事件。
你的主图像下面的链接,应包含在一些识别容器大家可以参考一下,像这样:
<img id="mainImage"></img>
<ul id="mainImageLinks">
<li><a href="image1.jpg" />Link 1</a></li>
<li><a href="image2.jpg" />Link 1</a></li>
<li><a href="image3.jpg" />Link 1</a></li>
<li><a href="image4.jpg" />Link 1</a></li>
<li><a href="image5.jpg" />Link 1</a></li>
</ul>
那么你可以使用CSS样式的元素,很明显,并超出范围你的问题,但会是这样的:
#mainImage {
width: 200px;
height: 200px;
border: 1px solid black;
display: block;
margin: 10px;
}
#mainImageLinks a {
display: block;
float: left;
padding: 3px;
}
然后jQuery的照顾,其余的:
$('#mainImageLinks li a').bind('mouseenter', function() {
var url = $(this).attr('href');
$('#mainImage').attr('src', url);
return false; // prevent the default action on click
});
您可以在CSS中使用精灵,:hover
和background-position
属性进行悬停更改,但我不认为这对于此类事物会是理想的。 jQuery解决方案会更好。
我不知道如何做到这一点只是CSS,但这里是一个快速的小jQuery,应该让你接近。
$("a").each(function(index) {
$(this).click(function() {
$("#mainImg").find("img").attr('src', $(this).find("img").attr('src'));
});
});
,如果你发布了一些实际的代码,这将帮助,这样,给你的解决方案时,我们可以参考它。我的代码假设你有一个保存每个图像的锚点。
我在上面...... – 2012-02-01 17:33:08
你不能用CSS做到这一点。你需要使用JavaScript。给它一个镜头,然后回来,在这里发布你在JS遇到麻烦的地方。 – maxedison 2012-02-01 17:37:57
@maxedison它肯定可以用CSS来完成。看到我的答案。 – 2012-02-01 18:20:56