不确定这是否是正确的发布地点,但我想知道是否有人可以指出我正确的方向。我正在尝试创建一个画廊式的东西,但不知道要搜索什么。
我想要实现的目标是创建如下内容:http://avawa.radiuzz.com/home/
我希望有一张照片,当我将鼠标悬停在桌面上(或在桌面上)或点击(移动设备)时,会弹出一个叠加层,我可以在其中放置标题,然后在其下方添加几个链接。
我设法创造了一些东西,但我无法让它反应灵敏,在移动设备上查看时,悬停选项不起作用,因此不会弹出叠加层。
<div class="media">
<img class="media__image" src="_img/animation.jpg" alt="Animation Image">
<div class="media__body">
<h2>Animation</h2>
<div class="program-info">
<p><a href="#"><i class="fa fa-film fa-fw fa-lg"></i> Program Page</a></p>
<p><a href="#"><i class="fa fa-file-o fa-fw fa-lg"></i> Student Reel</a></p>
</div>
</div>
</div>
这是CSS:
.media{display:inline-block;position:relative;vertical-align:top;margin:0 5px}
.media:first-child{margin-left:0}
.media:last-child{margin-right:0}
.media__image{display:block}
.media__body{background:rgba(255,255,255,.83);color:#000;font-size:2.4rem;left:10px;opacity:0;overflow:hidden;padding:7rem 3rem;position:absolute;top:10px;right:10px;bottom:10px;-webkit-transition:.6s;transition:.6s}
.media__body:hover{opacity:1}
.media__body h2{margin-top:0;font-size:4.8rem}
.media__body .program-info{margin-left:10rem}
.media__body p{margin-bottom:1rem}
如果有人可以帮助我尝试创建一些像提供的链接更好的东西,或者至少指出我应该在什么/哪里学习如何做到这一点,那就太棒了。
答案 0 :(得分:1)
看起来你有正常的,更大的尺寸,悬停状态很好,所以我的答案真的只针对小屏幕/移动版本。
首先,您将需要javascript(在此实例中为jQuery)来检测加载时的屏幕宽度。我检测到宽度小于1024且高度小于768,但您可以轻松调整代码中的那些。
在HTML中,我在.media__body div中添加了第二个类.hover__box,以便在删除.media__body时根据屏幕大小控制悬停,从而有一个目标选择器。缺点是我删除.media_body并添加.mobile__body,然后添加了一些jQuery来控制点击。
这是新的HTML(添加了占位符图片):
<div class="media">
<img class="media__image" src="http://loremflickr.com/320/240/dog" alt="Animation Image">
<div class="media__body hover__box">
<h2>Animation</h2>
<div class="program-info">
<p><a href="#"><i class="fa fa-film fa-fw fa-lg"></i> Program Page</a></p>
<p><a href="#"><i class="fa fa-file-o fa-fw fa-lg"></i> Student Reel</a></p>
</div>
</div>
</div>
这是我添加到CSS中的内容:
.hover__box{background:rgba(255,255,255,.83);color:#000;font-size:2.4rem;left:10px;overflow:hidden;padding:7rem 3rem;position:absolute;top:10px;right:10px;bottom:10px;}
这是JS:
$( document ).ready(function() { // on DOM ready
var width = $(window).width(), height = $(window).height(); //setting width and height variables
if ((width <= 1023) && (height <= 767)) { //checks to see if the width is mobile sizes or not
$(".hover__box").removeClass("media__body"); // removes hover class
$(".hover__box").addClass("mobile__body"); // add mobile jQuery target class
$(".hover__box").hide(); // hide the hover box
$(".media__image").addClass("mobile__ready"); // add class to image so that it can be clicked specific to mobile
}
// show hover box when image is clicked on mobile
$(".media__image.mobile__ready").click(function() {
$(".hover__box").show();
});
// hide hover box when it is clicked on mobile
$(".hover__box.mobile__body").click(function() {
$(".hover__box").hide();
});
});
这是一个可以使用的JSFiddle但你需要调整预览所在的框的大小,以便看到更大的尺寸:http://jsfiddle.net/overwine/v97m2c8n/3/