jquery div 将标题悬停在图片上
jquery div caption hover an image
我有一个带有循环的脚本来生成缩略图图像。
我添加了一个 div 隐藏悬停每个缩略图以显示关联标题。
但是当鼠标悬停在图片上时我无法显示标题..
这是我的 jsfiddle 来理解它:
https://jsfiddle.net/mytom/zgytmyt0/
-> 我想在鼠标悬停在图像上时显示标题,而在鼠标移开时隐藏标题。
CSS 代码:
#componentWrapper .thumbHolder {
position:absolute;
width:100%;
height:107px;
left:0px;
bottom:0px;
background:#222;
overflow:hidden;
display:block;
}
#componentWrapper .thumbContainer {
position:absolute;
height:67px;
top:40px;
/*left, width set in jquery*/
}
#componentWrapper .thumbInnerContainer {
position:absolute;
height:67px;
/*width set in jquery*/
top:0px;
left:0px;
}
#componentWrapper .thumbs {
position:relative;
top:0px;
left:0px;
margin-right: 2px !important;
width:100px;
height:67px;
float:left;
background:#111;
}
#componentWrapper .thumb_img {
position:relative;
display:block;
top:0px;
left:0px;
width:100%;
height:100%;
opacity: .3;
-webkit-transition: opacity 0.5s ease-out;
-moz-transition: opacity 0.5s ease-out;
-ms-transition: opacity 0.5s ease-out;
-o-transition: opacity 0.5s ease-out;
transition: opacity 0.5s ease-out;
}
#componentWrapper .thumb_img:hover {
opacity: 1;
-webkit-transition: opacity 0.3s ease-out;
-moz-transition: opacity 0.3s ease-out;
-ms-transition: opacity 0.3s ease-out;
-o-transition: opacity 0.3s ease-out;
transition: opacity 0.3s ease-out;
}
/* thumb caption */
#componentWrapper .thumbCaptionHolder {
background-color: rgba(0, 0, 0, 0.6);
height: 67px;
left: 0;
/*overflow: hidden;*/
padding: 3px;
position: absolute;
top: 0px;
width: 95px;
}
#componentWrapper .thumbCaption {
color: #e5e5e5;
font-family: sans-serif;
font-size: 10px;
cursor:default;
}
HTML 代码:
<div id="componentWrapper">
<div class="thumbHolder">
<div class="thumbContainer" style="width: 1266px; left: 50px;">
<div class="thumbInnerContainer" style="top: 0px; left: 0px; width: 8568px;">
</div>
</div>
</div>
</div>
JS 脚本:
var thumbInnerContainer = $('.thumbInnerContainer');
var _item = [
{id: 'GASFa7rkLtM', type: 'video', title: 'description1',
thumb: 'https://i.ytimg.com/vi/GASFa7rkLtM/mqdefault.jpg'},
{id: 'R5txNOdumzQ', type: 'video', title: 'description2', thumb:
'https://i.ytimg.com/vi/R5txNOdumzQ/mqdefault.jpg'},
{id: 'PELlHslllk0', type: 'video', title: 'description3', thumb:
'https://i.ytimg.com/vi/PELlHslllk0/mqdefault.jpg'}
];
var len = _item.length,i = 0,thumb, div, _item;
for (i; i < len; i++) {
div = $('<div/>').addClass('thumbs').attr({
'data-id': i + 1,
'data-type': _item[i].type
});
div.attr('path', _item[i].id);
div.appendTo(thumbInnerContainer);
//create thumb
thumb = $(new Image()).addClass('thumb_img').appendTo(div).attr('alt', _item[i].title).css({
cursor: 'default'
}).error(function (e) {
//console.log("thumb error " + e);
}).attr('src', _item[i].thumb);
// thumb title
var thumbCaption = $('<div><p class="thumbCaption"><span>' + _item[i].title + '</span></p></div>').addClass('thumbCaptionHolder').attr('id', _item[i].id).appendTo(div).css({
top: '0px',
display: 'none'
})
// how to show thumbCaptionHolder div when mouseover the img????
} //end of loop
谢谢!
好的,解决方法很简单。
#componentWrapper .thumbs:hover > .thumbCaptionHolder{
display:block !important;
}
您将需要 !important
否则它将无法工作。
你的jquery代码也有一个小错误。
变化:
var thumbCaption = $('<div><p class="thumbCaption"><span>' + _item[i].title + '</span></p></div>').addClass('thumbCaptionHolder').attr('id', _item[i].id).appendTo(div).css({
top: '0px',
display: 'none'
})
至:
var thumbCaption = $('<div><p class="thumbCaption"><span>'+_item[i].title+'</span></p></div>').addClass('thumbCaptionHolder').attr('id',_item[i].id).appendTo(div).css({
'top': '0px',
'display': 'none'
})
和here你会发现为什么你需要改变。
和工作 Demo
我有一个带有循环的脚本来生成缩略图图像。 我添加了一个 div 隐藏悬停每个缩略图以显示关联标题。 但是当鼠标悬停在图片上时我无法显示标题..
这是我的 jsfiddle 来理解它: https://jsfiddle.net/mytom/zgytmyt0/
-> 我想在鼠标悬停在图像上时显示标题,而在鼠标移开时隐藏标题。
CSS 代码:
#componentWrapper .thumbHolder {
position:absolute;
width:100%;
height:107px;
left:0px;
bottom:0px;
background:#222;
overflow:hidden;
display:block;
}
#componentWrapper .thumbContainer {
position:absolute;
height:67px;
top:40px;
/*left, width set in jquery*/
}
#componentWrapper .thumbInnerContainer {
position:absolute;
height:67px;
/*width set in jquery*/
top:0px;
left:0px;
}
#componentWrapper .thumbs {
position:relative;
top:0px;
left:0px;
margin-right: 2px !important;
width:100px;
height:67px;
float:left;
background:#111;
}
#componentWrapper .thumb_img {
position:relative;
display:block;
top:0px;
left:0px;
width:100%;
height:100%;
opacity: .3;
-webkit-transition: opacity 0.5s ease-out;
-moz-transition: opacity 0.5s ease-out;
-ms-transition: opacity 0.5s ease-out;
-o-transition: opacity 0.5s ease-out;
transition: opacity 0.5s ease-out;
}
#componentWrapper .thumb_img:hover {
opacity: 1;
-webkit-transition: opacity 0.3s ease-out;
-moz-transition: opacity 0.3s ease-out;
-ms-transition: opacity 0.3s ease-out;
-o-transition: opacity 0.3s ease-out;
transition: opacity 0.3s ease-out;
}
/* thumb caption */
#componentWrapper .thumbCaptionHolder {
background-color: rgba(0, 0, 0, 0.6);
height: 67px;
left: 0;
/*overflow: hidden;*/
padding: 3px;
position: absolute;
top: 0px;
width: 95px;
}
#componentWrapper .thumbCaption {
color: #e5e5e5;
font-family: sans-serif;
font-size: 10px;
cursor:default;
}
HTML 代码:
<div id="componentWrapper">
<div class="thumbHolder">
<div class="thumbContainer" style="width: 1266px; left: 50px;">
<div class="thumbInnerContainer" style="top: 0px; left: 0px; width: 8568px;">
</div>
</div>
</div>
</div>
JS 脚本:
var thumbInnerContainer = $('.thumbInnerContainer');
var _item = [
{id: 'GASFa7rkLtM', type: 'video', title: 'description1',
thumb: 'https://i.ytimg.com/vi/GASFa7rkLtM/mqdefault.jpg'},
{id: 'R5txNOdumzQ', type: 'video', title: 'description2', thumb:
'https://i.ytimg.com/vi/R5txNOdumzQ/mqdefault.jpg'},
{id: 'PELlHslllk0', type: 'video', title: 'description3', thumb:
'https://i.ytimg.com/vi/PELlHslllk0/mqdefault.jpg'}
];
var len = _item.length,i = 0,thumb, div, _item;
for (i; i < len; i++) {
div = $('<div/>').addClass('thumbs').attr({
'data-id': i + 1,
'data-type': _item[i].type
});
div.attr('path', _item[i].id);
div.appendTo(thumbInnerContainer);
//create thumb
thumb = $(new Image()).addClass('thumb_img').appendTo(div).attr('alt', _item[i].title).css({
cursor: 'default'
}).error(function (e) {
//console.log("thumb error " + e);
}).attr('src', _item[i].thumb);
// thumb title
var thumbCaption = $('<div><p class="thumbCaption"><span>' + _item[i].title + '</span></p></div>').addClass('thumbCaptionHolder').attr('id', _item[i].id).appendTo(div).css({
top: '0px',
display: 'none'
})
// how to show thumbCaptionHolder div when mouseover the img????
} //end of loop
谢谢!
好的,解决方法很简单。
#componentWrapper .thumbs:hover > .thumbCaptionHolder{
display:block !important;
}
您将需要 !important
否则它将无法工作。
你的jquery代码也有一个小错误。
变化:
var thumbCaption = $('<div><p class="thumbCaption"><span>' + _item[i].title + '</span></p></div>').addClass('thumbCaptionHolder').attr('id', _item[i].id).appendTo(div).css({
top: '0px',
display: 'none'
})
至:
var thumbCaption = $('<div><p class="thumbCaption"><span>'+_item[i].title+'</span></p></div>').addClass('thumbCaptionHolder').attr('id',_item[i].id).appendTo(div).css({
'top': '0px',
'display': 'none'
})
和here你会发现为什么你需要改变。
和工作 Demo