Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
将光标移到框上以使用聚光灯投射阴影。
12:34:56
css
* { box-sizing: border-box; } html, body { margin: 0; padding: 0; } body { background: black; color: #666; font-family: sans-serif; font-size: 16px; overscroll-behavior: none; display: flex; flex-direction: column; align-items: center; height: 100vh; } #container { width: 90vw; height: 90vh; } #title { text-align: center; width: 100%; padding: 10px 0 10px 0; } #box { position: relative; width: 100%; height: 100%; background: #666; overflow: hidden; /*cursor: none;*/ border: 1px solid #333; -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-user-select: none; } .shadow__wall { position: absolute; top: 50%; left: 0; width: 100%; } #shadow__text { position: absolute; width: 100%; margin: 0; color: #999; font-family: Helvetica, Arial, sans-serif; font-size: 5rem; font-weight: bold; text-align: center; white-space: nowrap; } .shadow__box { position: absolute; background: #999; top: 4.5rem; height: 50vh; } #shadow__box--back { left: -5%; width: 110%; } #shadow__box--front { left: 0; width: 100%; } #shadow__spot { position: absolute; top: 0; left: 0; width: 200%; height: 200%; background: -webkit-gradient(radial, center center, 0, center center, 250, from(rgba(0,0,0,0)), to(rgba(0,0,0,1))); }
JavaScript
const textElem = document.querySelector('#shadow__text'); const spotElem = document.querySelector('#shadow__spot'); const boxElem = document.querySelector('#shadow__box--back'); const container = document.querySelector('#box'); var width = container.offsetWidth; var height = container.offsetHeight; const relMousePos = { _x: 0, _y: 0, x: 0, y: 0, updatePos: function(e) { const event = (e || window.event) && (e.touches && e.touches[0]) || e; this.x = event.clientX - this._x; this.y = event.clientY - this._y; }, setOrigin: function(e) { this._x = e.offsetLeft + Math.floor(e.offsetWidth / 2); this._y = e.offsetTop + Math.floor(e.offsetHeight / 2); } } relMousePos.setOrigin(container); container.addEventListener('mousemove', relMousePos.updatePos); function updateSize(e) { width = container.offsetWidth; height = container.offsetHeight; relMousePos.setOrigin(container); onMouseMove({clientX: relMousePos._x, clientY: relMousePos._y + 25}); } function updateTime() { let date = new Date(); let time = date.toLocaleTimeString(); textElem.innerText = time; setTimeout(updateTime, 1000); } function onMouseMove(e) { relMousePos.updatePos(e); var xm = relMousePos.x; var ym = relMousePos.y; var d = Math.round(Math.sqrt(xm*xm + ym*ym) / 10); textElem.style.textShadow = -xm + 'px ' + -ym + 'px ' + (d + 10) + 'px black'; boxElem.style.boxShadow = '0 ' + -ym + 'px ' + (d + 30) + 'px black'; spotElem.style.backgroundPosition = (xm - (width / 2)) + 'px ' + (ym - (height / 2)) + 'px'; } function init() { updateTime(); container.addEventListener('mousemove', onMouseMove); container.addEventListener('touchmove', function (e) { e.preventDefault(); e.stopPropagation(); onMouseMove(e); }, {passive: false}); onMouseMove({clientX: relMousePos._x, clientY: relMousePos._y + 25}); } document.addEventListener('resize', updateSize); document.addEventListener('DOMContentLoaded', init);
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>阴影聚光灯-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号