- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我曾经写过的代码。如果没有滚动,则它可以正常工作。但是当您单击滚动区域中的其余元素时,将无法正常工作。点击Link4后面的元素即可了解问题。
$(function() {
$(".li").click(function() {
$(".magicline").css({
width:
$(this)
.outerWidth() + "px",
left:
$(this)
.position().left + "px"
});
});
$(".li").first().trigger("click");
});
body {
padding: 0;
margin: 0;
}
ul,
li {
list-style: none;
padding: 0;
margin: 0;
}
.nav {
width: 300px;
display: flex;
border-top: 1px solid tomato;
border-bottom: 1px solid tomato;
margin-top: 100px;
overflow: auto;
position: relative;
}
.li {
white-space: nowrap;
position: relative;
z-index: 2;
cursor: pointer;
}
.item {
display: block;
text-decoration: none;
color: #444;
margin: 10px;
padding: 10px;
}
.magicline {
position: absolute;
/* width js, left js */
position: absolute;
height: 50px;
border-radius: 25px;
background-color: pink;
transition: 0.3s;
top: 50%;
transform: translateY(-50%);
}
<ul class="nav">
<div class="magicline"></div>
<li class="li"><a href="#0" class="item">Link 1</a></li>
<li class="li"><a href="#0" class="item">Link 2</a></li>
<li class="li"><a href="#0" class="item">Link 3</a></li>
<li class="li"><a href="#0" class="item">Link 4</a></li>
<li class="li"><a href="#0" class="item">Link 5</a></li>
<li class="li"><a href="#0" class="item">Link 6</a></li>
<li class="li"><a href="#0" class="item">Link 7</a></li>
<li class="li"><a href="#0" class="item">Link 8</a></li>
<li class="li"><a href="#0" class="item">Link 9</a></li>
</ul>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
最佳答案
您需要添加父级的 scrollLeft
属性:
$(function() {
$(".li").click(function() {
var lft = $(this).parent().scrollLeft() + $(this).position().left; // <---
$(".magicline").css({
width:
$(this)
.outerWidth() + "px",
left:
lft + "px"
});
});
$(".li").first().trigger("click");
});
body {
padding: 0;
margin: 0;
}
ul,
li {
list-style: none;
padding: 0;
margin: 0;
}
.nav {
width: 300px;
display: flex;
border-top: 1px solid tomato;
border-bottom: 1px solid tomato;
margin-top: 100px;
overflow: auto;
position: relative;
}
.li {
white-space: nowrap;
position: relative;
z-index: 2;
cursor: pointer;
}
.item {
display: block;
text-decoration: none;
color: #444;
margin: 10px;
padding: 10px;
}
.magicline {
position: absolute;
/* width js, left js */
position: absolute;
height: 50px;
border-radius: 25px;
background-color: pink;
transition: 0.3s;
top: 50%;
transform: translateY(-50%);
}
<ul class="nav">
<div class="magicline"></div>
<li class="li"><a href="#0" class="item">Link 1</a></li>
<li class="li"><a href="#0" class="item">Link 2</a></li>
<li class="li"><a href="#0" class="item">Link 3</a></li>
<li class="li"><a href="#0" class="item">Link 4</a></li>
<li class="li"><a href="#0" class="item">Link 5</a></li>
<li class="li"><a href="#0" class="item">Link 6</a></li>
<li class="li"><a href="#0" class="item">Link 7</a></li>
<li class="li"><a href="#0" class="item">Link 8</a></li>
<li class="li"><a href="#0" class="item">Link 9</a></li>
</ul>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
关于javascript - 如何制作带有水平滚动导航的 magicline 动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59430125/
我有一个只有顶级元素的基本导航。有一个超大的背景图像(导航是 100 像素高,背景图像是 200 像素高)被添加到正在访问的当前页面。 Link 1 Link 2 Link 3 L
我在我的一个元素中使用了魔术线。除了一些下拉元素外,它工作得很好。当我单击某些下拉菜单时,它会重置到页面末尾。理想情况下,我希望它保持在父导航之上。 我正在使用 Bootstrap 下拉菜单。 HTM
我试图将带有底部边框的菜单更改为带有底部箭头。 例如:http://i.imgur.com/3onjcjV.png https://css-tricks.com/jquery-magicline-na
这是我曾经写过的代码。如果没有滚动,则它可以正常工作。但是当您单击滚动区域中的其余元素时,将无法正常工作。点击Link4后面的元素即可了解问题。 $(function() { $(".li").c
我使用 jQuery MagicLine 作为垂直滑动。我希望它是这样的,当我点击菜单时,该行将停留在该菜单项上,而不是像往常一样回到第一个菜单项。而且每当点击页面的向下箭头时,magicline 应
我只是试图通过删除我将在下面放置的 CSS 代码来删除内置在我的 Wordpress 主题中的 MagicLine。它起作用了,线路消失了,但现在我的导航全都跳动了,正如您在网站上看到的那样:http
我有 wordpress 网站,主页上有博客文章过滤功能。当您单击其中一个过滤器时 - 帖子会根据所选过滤器的类别发生变化。 我想做的是添加“MagicLine”,就像发布在这个 Fiddle 上的一
我正在尝试使用边框动画(来自 CSSTricks 的 MagicLine),它工作正常但我面临的唯一挑战是,目前它开始第一个元素并为所有元素设置动画,但是如果我点击任何元素然后我从第一项添加相同的类并
我尝试在我的网站上使用 MagicLine jQuery Navigation,但遇到了一个小问题。我希望下划线与当前突出显示的单词一样长。相反,它长了几个像素,我根本无法处理。我试图用 CSS 修复
我一直在尝试删除 CKEditor 中允许您插入段落的红线,但它顽固地拒绝删除自己。 在创建它的 javascript 中添加此代码: CKEDITOR.replace(target,{ re
我正在使用 Flexslider 进行幻灯片放映,我正在尝试使用 Magicline与它。 到目前为止一切正常,但是如果我单击箭头转到下一张幻灯片,magicline 不会移动 - 只有当我将鼠标悬停
有人熟悉 Magic Line jquery 菜单吗? http://css-tricks.com/jquery-magicline-navigation/ 我找不到任何关于如何让它在 Wordpre
第一次发帖。希望大家能帮忙。将不胜感激,我相信我会学到一些东西。此外,如果您在下面看到我的问题之外的任何其他冗余,请随时给我一个关于编码实践的新问题。我需要尽快学习尽可能多的东西。关于问题! 我有两个
我是一名优秀的程序员,十分优秀!