
如图,想实现一个很简单的效果,鼠标点击某一块的时候,左边的黄线就会移动到该块的左边。黄线是绝对定位的块,通过修改top的值进行移动,本人技术菜,能想到最简洁的代码就是这么写了,而且这种写法估计也就只能用在静态页面,我想知道更简洁更具有扩展性的代码应该怎么写?获取鼠标位置之类的……
谢谢~~
JS Bin
1
2
3
4
5
//js
function avtiveLineTop(n) {
document.getElementById('line').style.top = n + 'px';
};
document.getElementById('id1').onclick = function() {
avtiveLineTop(0);
};
document.getElementById('id2').onclick = function() {
avtiveLineTop(51);
};
document.getElementById('id3').onclick = function() {
avtiveLineTop(102);
};
document.getElementById('id4').onclick = function() {
avtiveLineTop(153);
};
document.getElementById('id5').onclick = function() {
avtiveLineTop(204);
};
源码
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
按你的思路:
这个可以使用到事件代理,我是这样实现的,希望对你有你帮助
将方块高度写在js内会造成js和样式严重耦合,应该是点击时设置#line的top值为被点击块的offsetTop。以下是我放在codepen上的demo http://codepen.io/Doing93/pen/RaBLLg