javascript - 使数据属性表现得像一个锚
问题描述
有没有一种可行的方法让数据属性表现得像一个锚?
考虑以下可能的情况:
<a id="link" href="#home">
<div data-section="home">
是否有可能以某种方式将锚标记绑定到具有相同命名数据属性的 div?
这不起作用,但有点像:
$("#link").click(function(e) {
var clickedLetter = $(this).attr('href');
$(this).attr("href", "#section[data-group='" + clickedLetter + "']")
});
解决方案
kawnah,在我看来,您需要获取单击元素的 href
var clicked = $(this).attr('href');
之后,您可以使用替换功能并获取不带标签符号 (#) 的 href
var myAttr = replace('#', clicked);
你应该做的最后一个是动画身体到元素有这个数据部分
var elementScrolledTo = $('*[data-section="' + myAttr + '"]');
$('html, body').animate({
scrollTop: elementScrolledTo.offset().top
}, 2000);
当然,这是jquery on event的handler函数。 http://api.jquery.com/on/
推荐阅读
- python - MLflow 更改实验 ID
- python - 在 Spyder 界面中更改非“纯文本”和“富文本”元素的字体大小
- python - pyomo 找不到“gurobi”可执行文件
- javascript - 无法获取嵌套数据中的密钥
- android - Telephonymanager getAllCellsInfo 返回错误的注册单元数
- javascript - Ajax/Axios cookie 未设置,但仍包含在以下请求中
- html - 视频不工作的引导轮播
- node.js - Typescript 扩展 HTTP 响应接口
- fiddler - Fiddler 未捕获任何浏览器流量并向我显示此错误
- vue.js - 标题中的 vue 转译文本 - 可访问性