- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在玩一个 menu animation .我达到了预期的结果,但它没有得到优化,我无法设法创建一个函数来遍历元素并应用正确的效果。
我基本上做的是在 LI 悬停之后和之前遍历所有 LI,并根据元素的位置减少/淡化元素。因此,LI 离悬停的越远,它就会变得越小和透明。
我的解决方案显然不灵活,因为如果我添加/删除 LI,我需要再次遍历所有值。
我很想知道您将如何简化它。
代码很简单。
$(document).ready(function(){
$("ul li").on("mouseover", function(){
$("ul li").removeClass("current");
var liLength = $("ul li").length;
$(this).css({
"width": "42",
"opacity": "1"
}).prevAll().eq(0).css({
"width": "35",
"opacity": "0.8333333334"
}).prevAll().eq(0).css({
"width": "28",
"opacity": "0.6666666667"
}).prevAll().eq(0).css({
"width": "21",
"opacity": "0.5"
}).prevAll().eq(0).css({
"width": "14",
"opacity": "0.3333333333"
}).prevAll().eq(0).css({
"width": "7",
"opacity": "0.16666666667"
});
$(this).css({
"width": "42",
"opacity": "1"
}).nextAll().eq(0).css({
"width": "35",
"opacity": "0.8333333334"
}).nextAll().eq(0).css({
"width": "28",
"opacity": "0.6666666667"
}).nextAll().eq(0).css({
"width": "21",
"opacity": "0.5"
}).nextAll().eq(0).css({
"width": "14",
"opacity": "0.3333333333"
}).nextAll().eq(0).css({
"width": "7",
"opacity": "0.16666666667"
});
$("ul li").on("mouseout", function(){
$("ul li").removeClass("current").css({
"width": "21",
"opacity": "1"
});
});
});
});
html, body, ul{
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
.container{
height: 100%;
display: flex;
-webkit-align-items: center;
-webkit-box-align: center;
align-items: center;
}
ul{
display: block;
position: relative;
height: auto;
}
ul li{
list-style:none;
background: #232323;
border-top: 10px solid #fff;
border-bottom: 10px solid #fff;
border-right: 10px solid #fff;
height: 10px;
width: 21px;
translate3d(0,0,0);
-webkit-transition: all 200ms linear;
transition:all 200ms linear;
}
ul li.current{
background: blue;
}
.exp{
position: fixed;
top: 0;
right: 0;
background: grey;
width: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
关键要素:
较大的元素应为 42px 宽且不透明度:1较小的元素应该是 7px 宽和不透明度:0.2
大小应减少如下:(42 - 7)/x-elements * 元素的索引与其在悬停元素中的位置相比。
不透明度应按以下方式降低:(1 - 0.2)/x-elements * 元素的索引与其在悬停元素中的位置相比。
原型(prototype):Codepen
非常感谢!
最佳答案
您可以遍历每个元素集合并使用 index
作为指示符;尝试这样的事情:
$(this).css({"width": "42","opacity":"1"})
.prevAll().each(function(index){
$(this).css({
"width": ((42-7)/(index+1))+"px",
"opacity": ((1-0.2)/(index+1))
})
})
关于javascript - 从当前悬停开始循环遍历上一个和下一个 LI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39475479/
好吧,标题说明了一切。我的 javascript 函数构建一些“ block ”并使用 和 创建它们。问题是,它删除了所有其他 在网页上。 编辑:(好吧,我假设这个函数是造成这个的原因。删除我的意思是
这个 HTML 结构有效吗? Item 1 Item 2 Item 3 Item 4 Item 5 Item 6
我正在尝试在 UL 中添加标题因为你不能在 UL 中使用 H2如果按照我展示的方式使用它可以吗? News roll News 1 News 2 我的一位 friend 告诉我
这是我的 代码风格。 li{ font-family: Arial, sans-serif; font-size: 100%; color: black; display : list-item;
我正在使用 a 进行水平导航,感谢问题:Separators For Navigation ,我读到了使用 li + li 设置基于图像的元素分隔符的好方法。 (伪?)选择器。 在我的代码中,我为
我有一个 Div 容器,其中包含 4 我正在做的是在前面加上 进入并删除最后一个 我很容易使用 $('#news-ul li:last').remove() $('#news-ul').prepe
这是 html: menu item menu item menu item menu item menu item 如果我按“a”链接,它会将“当
我有 ul-li 列表 1 2 3 A B 我可以在列表中使用纯 css 最后一个选择器“.digit”吗? .digit 的数量未知 ul li.digit:nth-last-ch
我有这种情况,1- 我想删除一个带有两个图标的 li,它作为一个跨度在里面:一个是选中或取消选中相应的 li,另一个是删除那个 li。2- 我还想通过单击图标(选中图标)同时单击 li 来选中或取消选
如果标题不好理解,我来解释一下... 我有一个 css/jquery 切换菜单。按“+”号时它变大,按“-”号时它变小。我使几个元素的填充、边距和高度在切换/单击时发生变化。菜单顶部充满了链接,然后当
我有一个脚本 ( JsFiddle here ) 检测 li block 元素何时在页面上垂直居中并为其分配一个 .centered 类以使其更大通过 CSS。 .centered { hei
代码在这里:http://jsfiddle.net/C5mTf/49/我不知道为什么。下面的代码有问题吗? $("#menu").on('click','li',function (){ va
我为这个问题苦苦挣扎了几个小时,但仍然无法解决问题。 我有这样的 html 代码: aaaa11 bbbb11 我想知道如何使用 css 让 每里一行显示。但是 标签仍然具有垂
我需要使用水平缩放的 ul > li > ul 的组合来创建一个菜单。每个 ul 都应该有一个 max-height 并在溢出时滚动。悬停在 li 上时,如果里面有另一个 ul 标签,它应该会在右侧打
我了解到,如果我指的是 在 内或 在 CSS 中我应该使用 ol > li或 ul > li但是一旦我忘记在 ol 和 li 之间放置标志,我发现它仍然有效。执行此操作的正确方法是什么? 最佳答案
Question 1 Answer: $('#addquestion').click(function() { var $question_number
我如何在 中显示我的数组值? 我的代码: HTML JS var myList = [ ['1','one'], ['1','two'], ['1','th
我在使用代码编辑器时遇到了问题所以就在这里 Item1 Item 1.1 Item 1.2 Item2
我正在为我的网站创建响应式移动版本。正如您在此 jsfiddle 中看到的那样, 当用户将鼠标悬停在 上时项,菜单打开但覆盖了 而不是展开菜单。 我已经添加了 display: block在不同的地
我正在尝试创建一个网站,但我偶然发现了一个小问题,我正在使用 bootsnipp(一个侧面菜单)中的一个片段,我无法让它工作,所以链接将覆盖整个 LI,而不是你必须按自己的文字如果我改变它,那么它会坐
我是一名优秀的程序员,十分优秀!