html
Web/API
shadow dom
公司的项目用的是jquery框架,
组件封装用的是HTMLElement,
组件内部的结构全部使用shadowRoot进行包装。
1 | class MyHello extends HTMLElement{ |
1 | <head> |
FullScreen 全屏API
实现网站自动全屏
目前还没有找到可以实现的方法,
网站要想进入全屏必须得要交互触发,
否则在调用requestFullscreen时会返回报错:
1 | TypeError: Permissions check failed |
看了几个stackoverflow的高赞回答,主要也是劝放弃这种需求:
这种设计是出于安全和交互性的考虑,
也有回答说如果真的想要实现这种强制全屏显示的页面,
可以使用类似SPA网站的设计,
用户点击页面后通过全屏同一页面的iframe模仿假页面切换并全屏显示交互效果
API实现和键盘全屏冲突问题
屏幕上有个按钮控制页面全屏,
非全屏状态下点击变为全屏,
全屏状态下点击退出全屏,
按钮的样式显示当前页面是否是全屏状态,
同时也要兼顾浏览器按F11和Esc切换全屏的功能。
设置了一个变量记录当前是否全屏,
在非全屏状态下,可以通过keydown事件监听F11的键入,
但是在全屏状态下,浏览器无法监听到keydown事件(???)
如何解决?
当然也可以直接在监听keydown事件,F11键入时,执行e.preventDefault(),
阻止F11的全屏,只用单一入口控制是否全屏,
但是如果同时要保留F11和Esc的功能,要如何解决
标签
img
img标签图片自适应
使用img标签展示图片时,一直不知道如何实现调整图片尺寸的同时保持原始长宽比。
以往都是用css里的background-img来实现这一功能, 这个问题一直都没解决。
之前听说如果在img标签上只设置width,即可保持长宽比,但是好像没什么用。
使用css中的object-fit属性,
类似于background-size属性
可以控制img标签展示图片的模式,可选值有:
fill|contain|cover|scale-down|none|initial|inherit;
input
input:file上传同一个文件时,change不触发
在使用input:file时,一般会绑定一个onChange事件,用来监听文件上传事件,
但是如果反复上传同一份文件,只有第一次上传会触发change事件。
上传的文件路径会被存储在 $event.target.value中,
因此需要每次都将 $event.target.value 清空:
1 | function change(e){ |
video
video标签无法自动播放
video标签已经设置了autoplay属性,视频依旧无法自动播放
参考博客:video 标签无法自动播放
需要把muted属性和autoplay属性一起配置上去:
1 | <video src="./citywalk.mpp4" autoplay muted></video> |
video加载blob格式视频
meta
移动端浏览器如何去掉头部导航栏
是谁还在做浏览器上运行的移动端网页,这个问题真的有解决的必要吗?
而且不同的浏览器的去除方式还都有可能不一样,放弃这个功能吧。
https://blog.csdn.net/hbcui1984/article/details/8350107
https://segmentfault.com/a/1190000018559886
https://www.jianshu.com/p/61e324e0efa2
Page-Enter/Page-Exit 控制页面进入退出效果
1 | <Meta http-equiv="Page-Enter" Content="blendTrans(Duration=10.5)" /> |
移动端浏览器自定义导航栏
目前似乎只能设置颜色,
通过设置页面meta头的theme-color:
1 | <meta name="theme-color" content="#ff0000"/> |