【发布时间】:2015-09-18 23:53:02
【问题描述】:
我正在尝试在我的网站上创建一个概览页面,以便当我将鼠标悬停在概览页面上的一个 div 上时,该 div 的不同部分会显示不同的图像。本质上是幻灯片,但图像会根据光标所在的位置而变化。
我已经设法找到了一些我想要的代码,但它使用 a href 来拉入图像,这意味着如果你点击它,它会转到图像的链接。
目前我只有占位符图像,但完成后每个都会有特定的项目图像。由于每个 div 只是一个项目,整个 div 应该转到一个 html 链接,而不仅仅是图像的特定图像链接用户悬停在上面。
我想要的只是用户点击它会转到一个 html 链接而不是一个 img 链接。
这是我正在使用的代码:
对于我想要实现的目标,精通编码的人可能会有更好的解决方案,我有兴趣看到任何更好的解决方案。
HTML
<div class="multi">
<ul class="rotator-nav fifth clearfix">
<li><a href="/img/FoI.jpg" onclick="return false;" class="img1"></a></li>
<li><a href="/images/card.jpg" onclick="return false;" class="img2"></a></li>
<li><a href="/images/amareal.jpg" onclick="return false;" class="img3"></a></li>
<li><a href="/images/edeva.jpg" onclick="return false;" class="img4"></a></li>
<li><a href="/images/amacover2.gif" onclick="return false;" class="img5"></a></li>
</ul>
<div class="imgcontent">
<ul class="rotator-icons fifth">
<span class="img1 active"></span>
<span class="img2"></span>
<span class="img3"></span>
<span class="img4"></span>
<span class="img5"></span>
</ul>
<img src="/img/FoI.jpg" class="currentimg">
</div>
</div>
CSS
.multi {
display: block;
float:left;
position: relative;
width: 30.8%;
height: 20%;
padding: 0px;
margin:0% 1% 2% 1%;
overflow: hidden;
}
.multi .imgcontent {
display: block;
position: absolute;
top: 0px;
}
.imgcontent img {
display:block;
width: 100%;
height: auto;
margin-left: auto;
margin-right: auto;
}
.rotator-nav {
display: block;
position: relative;
width: 100%;
height: 100%;
z-index: 9;
}
.rotator-nav li {
display: block;
float: left;
height: 100%;
}
.rotator-nav.fourth li {
width: 25%;
}
.rotator-nav.fifth li {
width: 20%;
}
.rotator-nav li a {
display: block;
float: left;
width: 100%;
height: 100%;
border-bottom:0px solid #fff
}
.clearfix:after { content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0; }
.clearfix { display: inline-block; }
html[xmlns] .clearfix { display: block; }
* html .clearfix { height: 1%; }
JS
$(function(){
var $rotators = $('.multi');
var $imglinks = $('.rotator-nav a');
$imglinks.on('mouseenter', function(e){
var imgclass = '.'+$(this).attr('class');
var imglink = $(this).attr('href');
// update main image src
$(this).parent().parent().parent().find('.currentimg').attr('src',imglink);
// update current rotator icon
var $rotators = $(this).parent().parent().parent().find('.rotator-icons');
if($rotators.children(imgclass).hasClass('active')) {
// already active icon -- do nothing
} else {
// remove active class then add to new icon
$rotators.children('span').removeClass('active');
$rotators.children(imgclass).addClass('active');
}
});
});
任何帮助将不胜感激!
谢谢,
标记
【问题讨论】:
-
你能提供一个jsFiddle吗?
-
这让我大吃一惊——你不能在
- 中直接使用 span 标签,
- (然后你可以在
- 中使用 span )。我也支持jsFiddle的请求。
- 的子级必须是
标签: javascript jquery html css image