JavaScript30 Day 3

这是我在github 上发现的一个原生js挑战项目,由于是js小白,希望通过这次的项目加深对js的理解

第三天的挑战是运用js实现图片的变化,图片会随滚动条的变化而变化。

效果图如下(变色功能由于软件的原因,没有展示)


Day3效果图

js部分

const input = document.querySelectorAll(".controls input");
console.log(input);
function handleUpdate(){
const suffix = this.dataset.sizing ||"";
console.log(suffix);
console.log(`--${this.id}`);
document.documentElement.style.setProperty(`--${this.id}`,this.value+suffix);
}
input.forEach(key => key.addEventListener("change",handleUpdate));
input.forEach(key => key.addEventListener("mousemove",handleUpdate));

dataset可以看张鑫旭大神的博客 ,这是html5自定义属性

    <label for="spacing">Spacing:</label>
    <input id="spacing" type="range" name="spacing" min="10" max="200" value="10" data-sizing="px">

    <label for="blur">Blur:</label>
    <input id="blur" type="range" name="blur" min="0" max="25" value="10" data-sizing="px">

    <label for="base">Base Color</label>
    <input id="base" type="color" name="base" value="#ffc600">

如果有一个属性 data-height,我们可以用dataset.height去获取,
document.documentElement.style.setProperty是去给图片的对应属性赋值

CSS部分

:root{
--base: #ffc600;
--blur:10px;
--spacing:10px;
}
img{
padding:var(--spacing);
background:var(--base);
filter:blur(var(--blur));
}
  • :root 伪类

这个伪元素匹配的是文档的根元素,也就是 <html> 标签,常用于声明全局的 CSS 变量
在使用的时候

:root{
--base: #ffc600;
}
img{
background:var(--base);//用var()包含起来
}

*滤镜filter
可以参考filter,这次使用有的是blur()模糊化。


以上就是我在day3中学到的知识,这里我同样参考了soyaine的中文指南,感谢

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • CSS Q: HTML引入CSS的方式有哪些? A: HTML element的style属性,HTML内部sty...
    赵长安啊阅读 3,816评论 0 7
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 6,857评论 0 11
  • 我高兴时会有好运, 远处的波涛起伏, 近处也有红叶飞扬。 不但钻进海里的泪珠消失, 连刻在心里的血也不见。 说的清...
    天青蓝阅读 988评论 0 1
  • 我是个扯淡的人,朋友不多,便拿“人生得一知己足矣”自勉…… 流水的日子里,朋友越来越多,能说话的却越来越少,不经怀...
    愚人笨走阅读 1,833评论 2 5