(function(){
var productUl = document.getElementById("product_ul");
var productLi = productUl.getElementsByTagName("li");
var listul = document.getElementById("productUl");
var listli = listul.getElementsByTagName("li");
var pheight = document.getElementById("product_product");
function productDh(dj){
for(var i=0;i<productLi.length;i++){
productLi[i].className = "";
}
productLi[dj].className = "producton";
}
for(var j=0;j<productLi.length;j++){
productLi[j].index = j;
productLi[j].onclick = function(){
productDh(this.index);
}
}
/*
*循环每个导航按钮,添加监听点击事件,点击跳转到相应的位置,为什么实现不了,
*我想把a的值根据productLi[i]点击哪一个跳转到相应的listli[j].offsetTop - h
*/
for(var i=0;i<productLi.length;i++){
var h = pheight.offsetHeight;
productLi[i].addEventListener("click",function(){
for(var j=0;j<listli.length;j++){
var a = listli[j].offsetTop - h;
console.log(a);//这里控制台都能输出每一项
window.scrollTo(0,a);//这里就接收不了a里面的数值
}
});
}
}());
原生js页面内点击导航按钮跳转到指定位置,为什么实现不了?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- CSDN专家-showbo 2021-06-16 16:45关注
你这个代码是跳转到最后的listli所在位置了,改成下面这样,看加粗的部分
for (var i = 0; i < productLi.length; i++) {
productLi[i].addEventListener("click", function () {var h = pheight.offsetHeight;//放里面来,防止页面resize过
var i = this.index;//this为当前点击的li,获取你上一次for循环设置的index propertyvar a = listli[i].offsetTop - h;
console.log(a);//这里控制台都能输出每一项
window.scrollTo(0, a);//这里就接收不了a里面的数值});
}帮助到你可以点击采纳吗,谢谢~~
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来