如何根据页面滚动动态更改 id
How to dynamically change id based on page scrolling
我有一个简单的页面,有 3 个大部分(蓝色、红色和灰色),并修复了定位的向上和向下箭头。小提琴
目前,当我单击向下箭头时,它会拖动/滚动到底部灰色部分,当我单击向上箭头时,它会转到顶部蓝色部分。到目前为止,这很好。但我想让它更有活力。
这是否可以使:如果我单击向下/向上箭头,它只会滚动到下一个底部/上部。
场景 1:我在蓝色部分,单击向下箭头将移动到红色部分,再次单击向下箭头将滚动到灰色部分
场景 2:如果我鼠标滚动到红色部分并单击向下箭头,它将滚动到灰色部分
向上箭头相同。
主要思想是在单击任何向上或向下箭头时根据当前位置滚动到下一部分。
我真的是一个完全的初学者,可以为此编写任何jQuery/javaScripts。我什至不确定jQuery是否可以做到这一点。
提前感谢您的任何帮助。
.HTML
<div class='container'>
<div class='div1' id='position1'></div>
<div class='div2' id='position2'></div>
<div class='div3' id='position3'></div>
<div class='move-down'><a href='#position3'>v</a></div>
<div class='move-up'><a href='#position1'>^</a></div>
</div>
我最近做了类似的事情,但是使用鼠标滚轮,使其适应您的按钮需求应该没有问题。
这是滚动显示的小提琴
这是代码:
var mousewheelevt = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel";
function transitionTo(elem){
$('html, body').stop().animate({
scrollTop: $(elem).offset().top
}, 2000, function () {
flag = true;
flag1 = true;
flag2 = true;
});
}
function getDelta(e){
var evt = window.event || e ;
evt = evt.originalEvent ? evt.originalEvent : evt;
return evt.detail ? evt.detail*(-40) : evt.wheelDelta;
}
var flag = true;
$('#position1').bind(mousewheelevt, function(e){
e.preventDefault();
var delta = getDelta(e);
if(delta < 0 && flag == true)
{
flag = false;
transitionTo('#position2');
}
});
var flag1 = true;
$('#position2').bind(mousewheelevt, function(e){
e.preventDefault();
var delta = getDelta(e);
if(delta < 0 && flag1 == true)
{
flag1 = false;
transitionTo('#position3');
}
else if (delta > 0 && flag1 == true) {
flag1 = false;
transitionTo('#position1');
}
});
var flag2 = true;
$('#position3').bind(mousewheelevt, function(e){
e.preventDefault();
var delta = getDelta(e);
if(delta < 0)
{
}
else if (delta > 0 && flag2 == true) {
flag2 = false;
transitionTo('#position2');
}
});
要让您的按钮与相同的过渡进行交互,请在下面添加以下内容:
$('#position1').on('mouseover', function () {
var position = 1;
$('.move-down').on('click',function(e){
e.preventDefault();
transitionTo('#position2');
});
});
$('#position2').on('mouseover',function () {
var position = 2;
$('.move-down').on('click',function(e){
e.preventDefault();
transitionTo('#position3');
});
$('.move-up').on('click',function(e){
e.preventDefault();
transitionTo('#position1');
});
});
$('#position3').on('mouseover',function () {
var position = 3;
$('.move-up').on('click',function(e){
e.preventDefault();
transitionTo('#position2');
});
});
只需找到当前的div 并相应地重写底部的函数......
相关文章:
- 使用getElementById设置动态ID的输入字段的样式
- Javascript:获取具有动态id的文本框值
- 如何添加动态Id's并在运行时提取它们
- 在追加一行并调用其中的时差函数时生成动态id
- 如何将所有动态id的arrey值获取到javascript VAR CID,以便在sql中找到匹配项
- 将动态ID传递到成功主干上的url
- 通过向动态id添加字符串,使用JavaScript控制文本框
- 如何简化Javascript动态ID
- 提交具有动态id的表单的数据
- 为jquery分配动态id
- 骨干路由器.导航如何传递动态ID
- 如何将动态 ID 值分配给标签
- 给出动态 id Angular2 绑定
- 如何在 PHP 和数据库中的 OpenTracker() 中传递动态 ID
- 选择具有动态 ID 的特定 tr 的特定 td
- 如何在javascript中使用动态ID删除文本框
- 如何在 javascript 中处理具有动态 ID 的事件
- 如何使用 getElementById 和 c# 变量设置动态 id
- 尝试将列表项追加到动态 id
- 如何在 jQuery 中创建动态 ID