- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 jquery,我正在尝试在我的页面上实现一个滚动部分,您可以在其中循环列表。根据列表中哪个元素具有事件类,列表右侧的不同 div 会显示:inline-block,而前一个事件元素会显示:none。
HTML:
<div class="o-technologies">
<div class="o-technologies__list">
<div class="o-technologies__list--label">
<h2 class="">List</h2>
</div>
<div class="o-technologies__list--list">
<ul>
</ul>
</div>
</div>
<div class="o-technologies__content">
<div class="m-technology">
<div class="m-technology__wrapper">
<h2 class="m-technology__title">Technology 1</h2>
<div class="m-technology__description">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
</div>
</div>
<div class="m-technology">
<div class="m-technology__wrapper">
<h2 class="m-technology__title">Technology 2</h2>
<div class="m-technology__description">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
</div>
</div>
<div class="m-technology">
<div class="m-technology__wrapper">
<h2 class="m-technology__title">Technology 3</h2>
<div class="m-technology__description">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet
</div>
</div>
</div>
<div class="m-technology">
<div class="m-technology__wrapper">
<h2 class="m-technology__title">Technology 4</h2>
<div class="m-technology__description">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga.
</div>
</div>
</div>
</div>
</div>
jquery:
$(document).ready(function() {
$technologiesList = $(".o-technologies__list ul");
$('.m-technology').each(function(i, el) {
$technology = $(this).find('h2').text();
if ( i === 0) {
$(this).addClass('active');
}
$id = 'm-technology--' + $technology.toLowerCase();
$(this).attr('id', $id);
if ( i === 0) {
$technologyItem = "<li class='active'><a href='#" + $id + "'>" + $technology + "</a></li>";
} else {
$technologyItem = "<li><a href='#" + $id + "'>" + $technology + "</a></li>";
}
$technologiesList.append($technologyItem);
});
});
到目前为止,这有效,因此标题被收集并放入列表中。第一个列表项使类处于事件状态,从而赋予它不同的颜色。第一项技术也获得了事件类,从而使其显示:内联 block 。其余项目已显示:隐藏,因此它们不会显示。
现在,当我将鼠标悬停在 o-technologies div 上进行滚动时,我正在尝试使下一个列表项和 m-technology 获得事件类。
我可以通过使用鼠标悬停事件来停止窗口滚动并将正文溢出设置为隐藏,但我似乎无法使滚动事件正常工作,因为 o-technologies div 没有溢出。
最佳答案
您必须监听 ul 元素上的wheel事件,然后操作元素(添加和删除类)
下面是更新后的部分工作代码
$(document).ready(function() {
$technologiesList = $(".o-technologies__list ul");
$('.m-technology').each(function(i, el) {
$technology = $(this).find('h2').text();
if ( i === 0) {
$(this).addClass('active');
}
$id = 'm-technology--' + $technology.toLowerCase().replace(" ","");
$(this).attr('id', $id);
if ( i === 0) {
$technologyItem = "<li id='li-"+$id+"' class='active'><a href='#" + $id + "'>" + $technology + "</a></li>";
} else {
$technologyItem = "<li id='li-"+$id+"' ><a href='#" + $id + "'>" + $technology + "</a></li>";
}
$technologiesList.append($technologyItem);
});
$(".o-technologies__list--list ul").on("wheel",function(event){
if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) {
$currentActive = $(".o-technologies__list--list ul li.active");
$currentActive.prev().addClass('active')
$currentActive.removeClass('active')
$('#'+$currentActive[0].id.replace("li-","")).removeClass('active')
// console.log($currentActive.next()[0])
$('#'+$currentActive.prev()[0].id.replace("li-","")).addClass('active')
}
else {
$currentActive = $(".o-technologies__list--list ul li.active");
$currentActive.next().addClass('active')
$currentActive.removeClass('active')
$('#'+$currentActive[0].id.replace("li-","")).removeClass('active')
// console.log($currentActive.next()[0])
$('#'+$currentActive.next()[0].id.replace("li-","")).addClass('active')
}
})
});
.o-technologies {
display: flex;
&__list {
text-align: center;
flex: 0 0 50%;
&--label {
> * {
display: inline-block;
}
}
&--list {
ul {
list-style-type: none;
padding: 0;
li {
&.active {
a {
font-weight: 900;
color: blue;
}
}
a {
text-decoration: none;
color: black;
}
}
}
}
}
.m-technology {
width: 100%;
position: relative;
display: none;
&.active {
display: inline-block;
}
&__wrapper {
h2 {
margin-top: 0;
}
}
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<div class="o-technologies">
<div class="o-technologies__list">
<div class="o-technologies__list--label">
<h2 class="">List</h2>
</div>
<div class="o-technologies__list--list">
<ul>
</ul>
</div>
</div>
<div class="o-technologies__content">
<div class="m-technology">
<div class="m-technology__wrapper">
<h2 class="m-technology__title">Technology 1</h2>
<div class="m-technology__description">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
</div>
</div>
<div class="m-technology">
<div class="m-technology__wrapper">
<h2 class="m-technology__title">Technology 2</h2>
<div class="m-technology__description">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
</div>
</div>
<div class="m-technology">
<div class="m-technology__wrapper">
<h2 class="m-technology__title">Technology 3</h2>
<div class="m-technology__description">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet
</div>
</div>
</div>
<div class="m-technology">
<div class="m-technology__wrapper">
<h2 class="m-technology__title">Technology 4</h2>
<div class="m-technology__description">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga.
</div>
</div>
</div>
</div>
</div>
关于javascript - 停止窗口滚动、滚动列表、在列表末尾恢复窗口滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60771925/
https://github.com/mattdiamond/Recorderjs/blob/master/recorder.js中的代码 我不明白 JavaScript 语法,比如 (functio
在 iOS 7 及更早版本中,如果我们想在应用程序中找到 topMostWindow,我们通常使用以下代码行 [[[UIApplication sharedApplication] windows]
我已经尝试解决这个问题很长一段时间了:我无法访问窗口的 url,因为它位于另一个域上..有一些解决方案吗? function login() { var cb = window.ope
是否可以将 FFMPEG 视频流传递到 C# 窗口?现在它在新窗口中作为新进程打开,我只是想将它传递给我自己的 SessionWindow。 此时我像这样执行ffplay: public void E
我有一个名为 x 的矩阵看起来像这样: pTime Close 1 1275087600 1.2268 2 1275264000 1.2264 3 1275264300 1.2
在编译时,发生搜索,grep搜索等,Emacs会在单独的窗口中创建一个新的缓冲区来显示结果,有没有自动跳转到那个窗口的方法?这很有用,因为我可以使用 n 和 p 而不是 M-g n 和 M-g p 移
我有一个启动 PowerShell 脚本的批处理文件。 批处理文件: START Powershell -executionpolicy RemoteSigned -noexit -file "MyS
我有一个基于菜单栏的应用程序,单击图标时会显示一个窗口。在 Mac OS X Lion 上一切正常,但由于某种原因,在 Snow Leopard 和早期版本的 Mac OS X 上会出现错误。任何时候
在 macOS 中,如何在 Xcode 和/或 Interface Builder 中创建带有“集成标题栏和工具栏”的窗口? 这是“宽标题栏”类型的窗口,已添加到 OS X 10.10 Yosemit
在浏览器 (Chrome) 中 JavaScript: var DataModler = { Data: { Something: 'value' }, Process: functi
我有 3 个 html 页面。第 1 页链接到第 2 页,第 2 页链接到第 3 页(为了简单起见)。 我希望页面 2 中的链接打开页面 3 并关闭页面 1(选项卡 1)。 据我了解,您无法使用 Ja
当点击“创建节点”按钮时,如何打开一个新的框架或窗口?我希望新框架包含一个文本字段和下拉菜单,以便用户可以选择一个选项。 Create node Search node
我有一个用户控件,用于编辑应用程序中的某些对象。 我最近遇到一个实例,我想弹出一个新的对话框(窗口)来托管此用户控件。 如何实例化新窗口并将需要设置的任何属性从窗口传递到用户控件? 感谢您的宝贵时间。
我有一个Observable,它发出许多对象,我想使用window或buffer操作对这些对象进行分组。但是,我不想指定count参数来确定窗口中应包含多少个对象,而是希望能够使用自定义条件。 例如,
我有以下代码,它打开一个新的 JavaFX 阶段(我们称之为窗口)。 openAlertBox.setOnAction(e -> { AlertBox alert = AlertBox
我要添加一个“在新窗口中打开”上下文菜单项,该菜单项将以新的UIScene打开我的应用程序文档之一。当然,我只想在实际上支持多个场景的设备上显示该菜单项。 目前,我只是在检查设备是否是使用旧设备的iP
我正在尝试创建一个 AIR 应用程序来记录应用程序的使用情况,使用 AIR 从系统获取信息的唯一简单方法是使用命令行工具和抓取 标准输出 . 我知道像 这样的工具顶部 和 ps 对于 OS X,但它们
所以我有这个简单的 turtle 螺旋制作器,我想知道是否有一种方法可以打印出由该程序创建的我的设计副本。 代码: import turtle x= float(input("Angle: ")) y
我正在编写一个 C# WPF 程序,它将文本消息发送到另一个程序的窗口。我有一个宏程序作为我的键盘驱动程序 (Logitech g15) 的一部分,它已经这样做了,尽管它不会将击键直接发送到进程,而是
我尝试使用以下代码通过 UDP 发送,但得到了奇怪的结果。 if((sendto(newSocket, sendBuf, totalLength, 0, (SOCKADDR *)&sendAd
我是一名优秀的程序员,十分优秀!