- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望我的标题不要太长,这也是我的第一个问题,所以请耐心等待。
因此,我的 .navicons div 中有一组 div,我想将它们用作屏幕外元素(#wdFoot、#wpFoot、#gdFoot)的触发器,以便在悬停时从屏幕底部升入 View 。到目前为止,我使用 .hover 和 .animate 实现了这种效果,但为了可用性,当用户将鼠标从触发区域移动到刚刚具有的实际脚元素时,我希望动画页脚元素保持凸起或在屏幕区域中。升入屏幕 View 。
这是我到目前为止所拥有的。
<div class="navicons">
<div id="wdicon"><!-- trigger divs -->
Wd
</div>
<div id="wpicon">
Wp
</div>
<div id="gdicon">
Gd
</div>
</div>
<section id="wdFoot"class="footNav"><!-- after they appear on the screen I want these to stay visible when the user moves the mouse from the triggers to this area -->
<h2>Wd Foot</h2>
</section>
<section id="wpFoot"class="footNav">
<h2>Wp Foot</h2>
</section>
<section id="gdFoot"class="footNav">
<h2>Gd Foot</h2>
</section>
CSS//
body{
overflow:hidden;
}
div.navicons{
width:auto;
position:absolute;
margin:0 auto;
}
.navicons > div{
width:80px;
height:80px;
border:2px solid rgba(178,178,178,.08);
border-radius:50%;
text-align:center;
display:inline-block;
transition:all .05s;
}
.navicons > div:hover{
border:2px solid #1f88e1;
}
section.footNav{
width:100%;
height:240px;
background-color:rgba(51,51,51,.7);
position:absolute;
bottom:-240px;
}
jQuery//
$( '#wdicon' ).hover(function() {
$( "#wdFoot" ).animate({'bottom':'0'}, 500);
},function(){
$("#wdFoot").animate({'bottom':'-240px'}, 500);
});
$( '#wpicon' ).hover(function() {
$( "#wpFoot" ).animate({'bottom':'0'}, 500);
},function(){
$("#wpFoot").animate({'bottom':'-240px'}, 500);
});
$( '#gdicon' ).hover(function() {
$( "#gdFoot" ).animate({'bottom':'0'}, 500);
},function(){
$("#gdFoot").animate({'bottom':'-240px'}, 500);
});
这是我的 fiddle.
另外,我确信有一种更简单或更短的方法来编写我的 jQuery,所以请随时告诉我。
谢谢
最佳答案
这是一个可能的选择。这完全取决于什么操作会导致页脚被删除。在此示例中,页脚将保持可见至少 1 秒,为用户提供足够的时间将光标移动到页脚上。一旦越过页脚,将光标移开将立即将其关闭。正如我在此处所做的那样,可以使用 setTimeout
函数实现其他方法。
首先,我决定使用 data
属性来消除多次 hover
调用的需要:
<div class="navicons">
<div id="wdicon" data-hover="wdFoot">
Wd
</div>
<div id="wpicon" data-hover="wpFoot">
Wp
</div>
<div id="gdicon" data-hover="gdFoot">
Gd
</div>
</div>
<section id="wdFoot"class="footNav">
<h2>Wd Foot</h2>
</section>
<section id="wpFoot"class="footNav">
<h2>Wp Foot</h2>
</section>
<section id="gdFoot"class="footNav">
<h2>Gd Foot</h2>
</section>
然后我使用 setTimeout
将关闭动画延迟 1 秒(1000 毫秒)。
var dismissTimeout;
var dismiss = function($group) {
$group.animate({'bottom':'-240px'}, 500);
};
$( '[data-hover]' ).hover(function() {
$(".footNav").stop().css('bottom':'-240px');
$( "#" + $(this).data("hover") ).stop().animate({'bottom':'0'}, 500);
},function(){
dismissTimeout = setTimeout(function() {
dismiss($("#" + $(this).data("hover") ));
}.bind(this), 1000);
});
由于 dismissTimeout
变量位于外部范围内,因此可以在页脚上的 hover
事件处理程序中清除它:
$('.footNav').hover(function() {
clearTimeout(dismissTimeout);
}, function() {
dismiss($(this));
});
Try it in my fork of your fiddle .
要在悬停下一个元素时以动画方式关闭非事件页脚,只需将 css
调用替换为 animate
:
$(".footNav").stop().animate({'bottom': '-240px'}, 500);
这在version 5 of the fiddle中得到了证明。 .
对于与垂直移动一致的高度动画,请尝试 Version 6 。基本思想是在dismiss
函数动画中添加返回正常高度:
var dismiss = function($group) {
$group.stop().animate({'bottom':'-240px', 'height': '240px'}, 500);
};
然后将增加高度的动画添加到页脚hover
处理程序:
$('.footNav').hover(function() {
clearTimeout(dismissTimeout);
$(this).animate({'height': '600px'}, 500);
}, function() {
dismiss($(this));
});
您还会注意到版本 6 删除了两个 stop()
调用,因为它们最终可能会取消已经正在进行的解散动画,这不好。
关于javascript - 从触发器导航到 ".hover"动画元素后,将其保留在屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32661203/
正如您在此 JSFiddle 中看到的那样,当您将鼠标悬停在 text-content 上时; opacity img 和 img 类返回到正常状态,我想保持 :hover 来自 img 和 img
在 Safari 上,CSS :hover 在具有固定位置的子级在父级外部打开然后关闭后仍然处于事件状态。 鼠标重新进入悬停区域后,它再次起作用。 演示:http://jsfiddle.net/HSC
使用 JQuery,当元素处于悬停状态时,我尝试链接几个函数。 我通常会使用.hover事件函数,但在阅读了一些教程后,我使用 .on 阅读了该函数更好,因为您可以使用一个事件处理程序来监视文档中的所
我已经解决了很多具有相似标题的已解决问题,但我尝试的似乎都没有用。 我希望将 ava.png 图像重定向到另一个页面,但是在悬停时我想要一个 :before 图像(ava_background_hoo
使用以下 html,当我将鼠标悬停在子对象上时,父对象的背景为绿色。我怎样才能阻止这种情况发生?如果我悬停在子元素之外,我确实需要绿色背景。 CSS3 很好。 .parent { padding:
我有两个默认设置为隐藏的子元素。 .child1, .child2{ visibility:hidden; } #parent :hover .child1, #parent:hover .child
所以我试图让我的分页在悬停时平滑地滑动,然后在鼠标离开元素后滑回其原始位置。我已经让它在悬停时滑动,但是当鼠标离开按钮时,它只是快速返回而不是过渡。有人可以帮我解决这个问题吗? 这是我的代码。 #pa
我有一个 jQuery 问题;我想通过将鼠标悬停在另一个元素上来触发元素上的 :hover 事件,控制台显示错误: Uncaught RangeError: Maximum call stack si
我正在挖掘某人编写的一些 css 代码,我发现了这个: li.hover, li:hover { } .hover 和 :hover 有区别吗? 也许某些浏览器对 hover 的行为不同?! 最佳答案
使用以下 html,当我将鼠标悬停在子对象上时,父对象的背景为绿色。我怎样才能阻止这种情况发生?如果我悬停在子元素之外,我确实需要绿色背景。 CSS3 很好。 .parent { padding:
找不到我一直想知道的问题的答案。 .class2 a:hover {} 和 .class2:hover a {} 有区别吗?还是偏爱其中之一? 我一直在使用 .class2 a:hover {} 来改
我不确定标题是否足够好地解释它,但我试图保持简短! 因此,我在页面上散布了许多图像,并为它们创建了一个灯箱画廊(.cboxElement 是调用它的类)。我想添加的是对受灯箱影响的每个图像的悬停效果,
.vpbutton {padding:4px;background-color:#EFEFEF;} .userbox img{padding:8px;background-color:#EFE
我无法让 a:hover 元素正常工作。我是业余爱好者,所以请放轻松...我也尝试过使用#menubar:hover,但这似乎也不起作用。 此代码将进入另一个程序的 header 。我进入这个的唯一原
我到处寻找这个问题的答案,但我找不到任何相关信息。谁能告诉我我们是否可以影响接收元素悬停边界半径属性的区域。以便在击中真实区域查看元素后发生颜色等变化的效果?不要阻止在 DOM 中作为正方形物理存在?
谁能看出我在这里做错了什么? 我在 中有一些文本元素我想要 text-decoration:none在什么时候 悬停在。请参阅下面的 HTML,我认为它应该可以工作,但是当我将鼠标悬停在 上时文字
我正在尝试创建一个可缩放的 map ,当鼠标悬停在 map 图像上时它会工作,类似于 map 在 Flickr 上的工作方式(请参阅右侧栏上的 map - http://www.flickr.com/
我有一张 table ,我有一个用于 tr:hover 效果的全局 css 代码。但有时我不想在我的 table 上使用这种悬停效果。请查看代码并告诉我如何不对该表运行效果。 JSFIDDLE .这里
我重新开发了我们的一个页面,我注意到它在 上使用悬停元素,尽管点击事件是针对 的标签。所以我将其更改为悬停在 上标签。当鼠标快速移动到每个元素上时,需要相当长的时间才能 catch 。我想没有人
我从来都不是 javascript 下拉菜单的忠实粉丝,所以当我可以使用 CSS 设计下拉菜单时,我会的。但是现在我遇到了一个小问题。 我有一个登录按钮和一个小的登录表单模块,它是按钮的兄弟。当我将鼠
我是一名优秀的程序员,十分优秀!