看到这个组件名字时候我都忍不住吐槽,虽然这个名字是我取得……起名的时候我犯难了😣😣😣。看到下面的运行效果大家就应该知道这是什么东东了,该叫什么呢!看了网上好多类似效果的都是使用的
醒目块之提示,这里可以放置一些提示性的内容。这个是默认情况
醒目块之提示,这里可以放置一些提示性的内容。这个是默认情况
醒目块之信息,这里可以放置一些信息性的内容。
醒目块之信息,这里可以放置一些信息性的内容。
醒目块之注意,这里可以放置一些注意性的内容。
醒目块之注意,这里可以放置一些注意性的内容。
醒目块之错误,这里可以放置一些错误性的内容。
醒目块之错误,这里可以放置一些错误性的内容。
参数 | 说明 | 默认值 |
---|---|---|
type | 醒目块的类型 | 支持的类型: default | info | warning | error,默认为:default |
explain | 醒目块的标题 | 你想要设置的都可以,无默认值 |
side-color | 醒目块的左侧颜色 | 你想要设置的都可以,系统边框默认值 |
bg-color | 醒目块的背景颜色 | 你想要设置的都可以,默认为: |
说明:设置了支持的 2021-10-10 更新:已经支持通过代码方式设置属性的值。例如:dom.setAttribute("explain", "xxx"); |
这个组件就不用过多的介绍了,功能比较常见,在N多网站中都有这个功能。这里自己实现了一下,支持在整个页面或者某一个滚动容器中使用。
参数 | 说明 | 默认值 |
---|---|---|
scroll-selector | 选择器 | document.querySelector支持的选择器 |
说明:该属性可以不设置,此时监听 |
这是我写的第一个Web Component,当时是为了音乐播放器的进度条,当然也用在了我的音乐播放器项目中(🎵 Music Online Angularjs)。
var singleSliderDemo1Dom = document.getElementById("singleSliderDemo1"); singleSliderDemo1Dom.addEventListener("input", (inputEvent) => { document.getElementById("singleSliderDemo1_preSingleSliderValueByInput").innerHTML = JSON .stringify(inputEvent .target .value, null, 1); }); singleSliderDemo1Dom.addEventListener("change", (customEvent) => { document.getElementById("singleSliderDemo1_preSingleSliderValueByChange").innerHTML = JSON .stringify(customEvent .detail.value, null, 1); }); function singleSliderDemo1_inputOnChangeEvent(input) { if (input.name) { singleSliderDemo1Dom.setAttribute(input.name, input.value); } } function singleSliderDemo1_inputRangeOnChangeEvent(range) { var sliderValue = singleSliderDemo1Dom.value; sliderValue[range.name] = range.value; singleSliderDemo1Dom.value = sliderValue; }
input监听:
change监听:
参数 | 说明 | 默认值 |
---|---|---|
slider-color | 滑道颜色 | 这个比较好理解 |
slid-color | 滑过颜色 | 进度颜色(例如:播放进度) |
load-color | 加载颜色 | 加载颜色(例如:加载进度),按需使用 |
slider-height | 滑道高度 | 这个也比较好理解 |
dot-color | 滑块颜色 | 设置滑块颜色 |
dot-size | 滑块大小 | 设置滑块大小 |
dot-radius | 滑块圆角 | 设置滑块圆角 |
你可以监听值的改变,支持 |
这组件的起因是Material Design的FAB,点击辐射出一些二级菜单……之后便想到了圆形,钟表等(对应的实现github中有示例代码)。之前都是样式实现的,现在想着是想一个JS版本的,便做成了组件,方便做一些定制。
let scaleClockDemo2Dom = document.getElementById("scaleClockDemo2"); scaleClockDemo2Dom.updateClockOption("centerPoint", "size", 30); scaleClockDemo2Dom.updateClockOption("centerPoint", "style", { backgroundColor: "#6DE195" }); scaleClockDemo2Dom.updateClockOption("hourHand", "style", { backgroundColor: "blue" }); scaleClockDemo2Dom.updateClockOption("minuteHand", "style", { backgroundColor: "orange" }); scaleClockDemo2Dom.updateClockOption("secondHand", "style", { backgroundColor: "red" }); scaleClockDemo2Dom.updateClockOption("scale", "bigStyle", { backgroundColor: "rebeccapurple" }); scaleClockDemo2Dom.updateClockOption("scale", "smallStyle", { backgroundColor: "yellow" }); scaleClockDemo2Dom.updateClockOption("scale", "numStyle", { 1: { backgroundColor: "blue" }, 29: { backgroundColor: "blue" }, 31: { backgroundColor: "blue" }, 59: { backgroundColor: "blue" } }); scaleClockDemo2Dom.updateClockOption("num12", "style", { color: "black" }); scaleClockDemo2Dom.updateClockOption("num12", "numStyle", { 3: { color: "red" }, 6: { color: "red" }, 9: { color: "red" }, 12: { color: "red" } }); scaleClockDemo2Dom.updateClockOption("num60", "style", { color: "gray" }); scaleClockDemo2Dom.updateClockOption("num60", "numStyle", { 10: { color: "red" }, 20: { color: "red" }, 40: { color: "red" }, 50: { color: "red" } });
参数 | 说明 | 默认值 |
---|---|---|
radius | 钟表半径 | 60 |
hour-hand-width | 时针宽度 | 3 |
minute-hand-width | 分针宽度 | 2 |
second-hand-hide | 秒针是否隐藏 | false |
second-hand-width | 秒针宽度 | 1 |
scale-length | 刻度长度 | 6 |
scale-big-width | 大刻度宽度——小时 | 2 |
scale-small-width | 小刻度宽度——分钟 | 0.8 |
num12-size | 刻度内圈小时数字(1-12)的大小 | 12 |
num60-show | 刻度外圈数字(1-60)是否显示 | false |
num60-size | 刻度外圈数字(1-60)的大小 | 无(默认不显示) |
说明:你可以通过获取DOM元素调用 |
该钟表组件支持的还不是很完善,涉及到计算的部分(例如:半径)还不支持动态更新,只支持开始时设置
为了方便的阅读文章,更加快速的查找到自己想要的章节,这便是这个组件的由来。
简单介绍一下实现方式:查找
请查看文章右侧(如果没有,则某些情况下还没有适配)
参数 | 说明 | 默认值 |
---|---|---|
generate-source-selector | 容器选择器,如果没有找到对应的元素则使用 |
|
样式不太美观;小屏下暂时不支持;如果出现滚动条并且最后一屏章节目录比较多,目录选中时有问题 |