开篇(请大家看完):此网站写给挚爱,后续页面还会慢慢更新,大家敬请期待~ ~ ~
此前端框架,主要侧重于前端页面的视觉效果和交互体验。通过运用各种前端技术和创意,精心打造了一系列引人入胜的页面特效,会为大家带来全新的浏览体验。
同时,我非常支持和鼓励大家对这个框架进行二次创作或修改。您可以根据自己的需求和喜好,对框架进行个性化的定制和扩展,以打造出更符合自己品味的页面效果。
但请注意,如果您打算将这个框架转发给其他人或用于其他场合,请务必注明原创来源。让我们一起维护一个良好的创作环境。
最后,轻舟会继续更新和完善这个前端页面特效框架,为大家带来更多有趣、实用的功能和效果。感谢您的支持和关注!
页面效果:整体色调背景采用柔和渐变的方式呈现,与主页面的“毒药水式”色彩搭配形成了强烈的对比;周边花瓣缓缓飘落到水面之上形成涟漪。整体给人一种温馨、浪漫的感觉,网页声明背景板犹如映衬在水中,给人一种飘渺之感,上面的四种按钮可以进行网页声明页面的切换
一:网站声明.html
<!DOCTYPE html>
<html lang="en" >
<head><meta NAME="Generator" CONTENT="EditPlus">
<meta NAME="Author" CONTENT="">
<meta NAME="Keywords" CONTENT="">
<meta NAME="Description" CONTENT=""><meta charset="UTF-8"><title>网站声明</title>
<link rel="stylesheet" href="CSS/声明.css">
<script type="text/javascript" src="JS/jquery-3.7.1.min.js"></script></head>
<body>
<div class="folder"><div class="tabs"><button class="tab active" onclick="openTab(event, 'tab-1')"><div><span>网站架构</span></div></button><button class="tab" onclick="openTab(event, 'tab-2')"><div><span>页面分配</span></div></button><button class="tab" onclick="openTab(event, 'tab-3')"><div><span>注意事项</span></div></button><button class="tab" onclick="openTab(event, 'tab-4')"><div><span>联系我们</span></div></button></div><div class="content"><div class="content__inner" id="tab-1"><div class="page"><p>“常温”个人网站采用:<p><span style="margin-left: 2em;">HTML5:用于构建网站的基本结构。</span></p><p><span style="margin-left: 2em;">CSS3:用于设置网站的样式和布局,包括响应式设计,确保网站在不同设备上都能良好显示。</span></p><p><span style="margin-left: 2em;">JavaScript:增强网站的交互性和动态效果,增强用户体验,如图片轮播、按钮点击效果等。</span></p><p><span style="margin-left: 2em;">echarts.js:用于图表类型的绘制(如:折线图、柱状图、饼状图、散点图、K线图、热力图等)</span></p></p></div></div><div class="content__inner" id="tab-2"><div class="page"><p>本网站主要侧重于前端页面的视觉效果和交互体验。通过运用各种前端技术和创意,精心打造了一系列引人入胜的页面特效,会为大家带来全新的浏览体验。</p><p>页面整体偏重于毒药水式色彩搭配,页面绚丽多彩,截止目前为止已开发的页面有:</p><p><span style="margin-left: 2em;">(1)主要功能有:记事留言,日历,录音,视频播放,音乐播放,可视化图表等</span></p><p><span style="margin-left: 2em;">(2)包含的游戏有:堆木头,压扁小鸟,进击的玉兔,拼图等游戏</span></p><p></p></div></div><div class="content__inner" id="tab-3"><div class="page"><p>欢迎访问“常温”个人网站!本网站发布的所有文章、图片、音频、视频等内容,除特别注明外,均为温轻舟原创或已获得授权使用。未经本人明确许可,任何组织或个人不得擅自转载、复制、修改、分发或以其他形式使用本网站内容,违者将依法追究其法律责任。</p>
<!-- <p>本网站可能通过表单提交、Cookies等方式收集用户的个人信息,仅用于改善用户体验、提供个性化服务或响应用户请求。我承诺不将用户信息用于任何非法目的,也不会将信息出售给第三方。</p>--><p>由于网络环境的复杂性和不确定性,我无法保证绝对的信息安全,请用户自行承担因网络安全问题可能带来的风险。</p>
<!-- <p>我将采取合理的技术和管理措施,保护用户信息的安全,防止信息泄露、毁损或丢失。然而,由于网络环境的复杂性和不确定性,我无法保证绝对的信息安全,请用户自行承担因网络安全问题可能带来的风险。</p>--><p>本网站提供的所有信息、观点和建议仅供参考,不构成任何专业建议或决策依据。用户在使用本网站内容时,应自行判断其适用性和准确性,并承担因使用本网站内容而产生的任何后果。</p></div></div><div class="content__inner" id="tab-4"><div class="page"><p>如果您对本网站的内容、隐私政策或其他方面有任何疑问或建议,欢迎通过以下方式联系我:<p><span style="margin-left: 2em;">社交媒体:请在社交媒体主页留言/私信我:如CSDN、微信公众号、阿里云等</span></p><br>
感谢您对“常温”个人网站的支持与关注!</p><p></p></div></div></div>
</div>
<script src="JS/script.js"></script><div id="jsi-cherry-container" class="container"></div><script>var RENDERER = {INIT_CHERRY_BLOSSOM_COUNT: 30,MAX_ADDING_INTERVAL: 10,init: function () {this.setParameters();this.reconstructMethods();this.createCherries();this.render();},setParameters: function () {this.$container = $('#jsi-cherry-container');this.width = this.$container.width();this.height = this.$container.height();this.context = $('<canvas />').attr({ width: this.width, height: this.height }).appendTo(this.$container).get(0).getContext('2d');this.cherries = [];this.maxAddingInterval = Math.round(this.MAX_ADDING_INTERVAL * 1000 / this.width);this.addingInterval = this.maxAddingInterval;},reconstructMethods: function () {this.render = this.render.bind(this);},createCherries: function () {for (var i = 0, length = Math.round(this.INIT_CHERRY_BLOSSOM_COUNT * this.width / 1000); i < length; i++) {this.cherries.push(new CHERRY_BLOSSOM(this, true));}},render: function () {requestAnimationFrame(this.render);this.context.clearRect(0, 0, this.width, this.height);this.cherries.sort(function (cherry1, cherry2) {return cherry1.z - cherry2.z;});for (var i = this.cherries.length - 1; i >= 0; i--) {if (!this.cherries[i].render(this.context)) {this.cherries.splice(i, 1);}}if (--this.addingInterval == 0) {this.addingInterval = this.maxAddingInterval;this.cherries.push(new CHERRY_BLOSSOM(this, false));}}};var CHERRY_BLOSSOM = function (renderer, isRandom) {this.renderer = renderer;this.init(isRandom);};CHERRY_BLOSSOM.prototype = {FOCUS_POSITION: 300,FAR_LIMIT: 600,MAX_RIPPLE_COUNT: 100,RIPPLE_RADIUS: 100,SURFACE_RATE: 0.5,SINK_OFFSET: 20,init: function (isRandom) {this.x = this.getRandomValue(-this.renderer.width, this.renderer.width);this.y = isRandom ? this.getRandomValue(0, this.renderer.height) : this.renderer.height * 1.5;this.z = this.getRandomValue(0, this.FAR_LIMIT);this.vx = this.getRandomValue(-2, 2);this.vy = -2;this.theta = this.getRandomValue(0, Math.PI * 2);this.phi = this.getRandomValue(0, Math.PI * 2);this.psi = 0;this.dpsi = this.getRandomValue(Math.PI / 600, Math.PI / 300);this.opacity = 0;this.endTheta = false;this.endPhi = false;this.rippleCount = 0;var axis = this.getAxis(),theta = this.theta + Math.ceil(-(this.y + this.renderer.height * this.SURFACE_RATE) / this.vy) * Math.PI / 500;theta %= Math.PI * 2;this.offsetY = 40 * ((theta <= Math.PI / 2 || theta >= Math.PI * 3 / 2) ? -1 : 1);this.thresholdY = this.renderer.height / 2 + this.renderer.height * this.SURFACE_RATE * axis.rate;this.entityColor = this.renderer.context.createRadialGradient(0, 40, 0, 0, 40, 80);this.entityColor.addColorStop(0, 'hsl(330, 70%, ' + 50 * (0.3 + axis.rate) + '%)');this.entityColor.addColorStop(0.05, 'hsl(330, 40%,' + 55 * (0.3 + axis.rate) + '%)');this.entityColor.addColorStop(1, 'hsl(330, 20%, ' + 70 * (0.3 + axis.rate) + '%)');this.shadowColor = this.renderer.context.createRadialGradient(0, 40, 0, 0, 40, 80);this.shadowColor.addColorStop(0, 'hsl(330, 40%, ' + 30 * (0.3 + axis.rate) + '%)');this.shadowColor.addColorStop(0.05, 'hsl(330, 40%,' + 30 * (0.3 + axis.rate) + '%)');this.shadowColor.addColorStop(1, 'hsl(330, 20%, ' + 40 * (0.3 + axis.rate) + '%)');},getRandomValue: function (min, max) {return min + (max - min) * Math.random();},getAxis: function () {var rate = this.FOCUS_POSITION / (this.z + this.FOCUS_POSITION),x = this.renderer.width / 2 + this.x * rate,y = this.renderer.height / 2 - this.y * rate;return { rate: rate, x: x, y: y };},renderCherry: function (context, axis) {context.beginPath();context.moveTo(0, 40);context.bezierCurveTo(-60, 20, -10, -60, 0, -20);context.bezierCurveTo(10, -60, 60, 20, 0, 40);context.fill();for (var i = -4; i < 4; i++) {context.beginPath();context.moveTo(0, 40);context.quadraticCurveTo(i * 12, 10, i * 4, -24 + Math.abs(i) * 2);context.stroke();}},render: function (context) {var axis = this.getAxis();if (axis.y == this.thresholdY && this.rippleCount < this.MAX_RIPPLE_COUNT) {context.save();context.lineWidth = 2;context.strokeStyle = 'hsla(0, 0%, 100%, ' + (this.MAX_RIPPLE_COUNT - this.rippleCount) / this.MAX_RIPPLE_COUNT + ')';context.translate(axis.x + this.offsetY * axis.rate * (this.theta <= Math.PI ? -1 : 1), axis.y);context.scale(1, 0.3);context.beginPath();context.arc(0, 0, this.rippleCount / this.MAX_RIPPLE_COUNT * this.RIPPLE_RADIUS * axis.rate, 0, Math.PI * 2, false);context.stroke();context.restore();this.rippleCount++;}if (axis.y < this.thresholdY || (!this.endTheta || !this.endPhi)) {if (this.y <= 0) {this.opacity = Math.min(this.opacity + 0.01, 1);}context.save();context.globalAlpha = this.opacity;context.fillStyle = this.shadowColor;context.strokeStyle = 'hsl(330, 30%,' + 40 * (0.3 + axis.rate) + '%)';context.translate(axis.x, Math.max(axis.y, this.thresholdY + this.thresholdY - axis.y));context.rotate(Math.PI - this.theta);context.scale(axis.rate * -Math.sin(this.phi), axis.rate);context.translate(0, this.offsetY);this.renderCherry(context, axis);context.restore();}context.save();context.fillStyle = this.entityColor;context.strokeStyle = 'hsl(330, 40%,' + 70 * (0.3 + axis.rate) + '%)';context.translate(axis.x, axis.y + Math.abs(this.SINK_OFFSET * Math.sin(this.psi) * axis.rate));context.rotate(this.theta);context.scale(axis.rate * Math.sin(this.phi), axis.rate);context.translate(0, this.offsetY);this.renderCherry(context, axis);context.restore();if (this.y <= -this.renderer.height / 4) {if (!this.endTheta) {for (var theta = Math.PI / 2, end = Math.PI * 3 / 2; theta <= end; theta += Math.PI) {if (this.theta < theta && this.theta + Math.PI / 200 > theta) {this.theta = theta;this.endTheta = true;break;}}}if (!this.endPhi) {for (var phi = Math.PI / 8, end = Math.PI * 7 / 8; phi <= end; phi += Math.PI * 3 / 4) {if (this.phi < phi && this.phi + Math.PI / 200 > phi) {this.phi = Math.PI / 8;this.endPhi = true;break;}}}}if (!this.endTheta) {if (axis.y == this.thresholdY) {this.theta += Math.PI / 200 * ((this.theta < Math.PI / 2 || (this.theta >= Math.PI && this.theta < Math.PI * 3 / 2)) ? 1 : -1);} else {this.theta += Math.PI / 500;}this.theta %= Math.PI * 2;}if (this.endPhi) {if (this.rippleCount == this.MAX_RIPPLE_COUNT) {this.psi += this.dpsi;this.psi %= Math.PI * 2;}} else {this.phi += Math.PI / ((axis.y == this.thresholdY) ? 200 : 500);this.phi %= Math.PI;}if (this.y <= -this.renderer.height * this.SURFACE_RATE) {this.x += 2;this.y = -this.renderer.height * this.SURFACE_RATE;} else {this.x += this.vx;this.y += this.vy;}return this.z > -this.FOCUS_POSITION && this.z < this.FAR_LIMIT && this.x < this.renderer.width * 1.5;}};$(function () {RENDERER.init();});</script>
</body>
</html>
二:声明.css
html,body {width: 100%;height: 100%;margin: 0;padding: 0;overflow: hidden;}* {box-sizing: border-box;
}:root {--background: rgba(137, 246, 14, 0.19);
}
.container {width: 100%;height: 100%;margin: 0;position: absolute;padding: 0;background-image: linear-gradient(to right, rgba(154, 89, 168, 0.67), rgba(30, 145, 199, 0.67), rgba(0, 255, 153, 0.67));
}
body {display: flex;grid: 2rem auto/repeat(2, 50%);grid-column-gap: 2rem;justify-content: center;width: 100%;height: 100%;margin: 0;padding: 0;overflow: hidden;
}
p {margin-bottom: 1rem;
}.tab {z-index: 1;text-transform: uppercase;line-height: 0.8;display: inline-block;margin-left: -35px;filter: drop-shadow(0px -3px 2px rgba(0, 0, 0, 0.05));border: none;border-radius: 6px 6px 0 0;position: relative;margin-right: 4rem;background: var(--background);white-space: nowrap;cursor: pointer;background: var(--background);
}
.tab:focus {outline: none;
}
.tab:focus span {border-bottom: 2px solid;border-radius: 0;
}
.tab:first-of-type {margin-left: 30px;
}
.tab div {background: var(--background);padding: 6px 0;position: relative;z-index: 10;
}
.tab span {display: inline-block;border: 2px solid transparent;padding: 6px 15px 6px;border-radius: 5px;z-index: 5;position: relative;font-size: 140%;background-image: linear-gradient(to right, rgba(154, 89, 168, 0.67), rgba(255, 30, 0, 0.67), rgba(0, 255, 153, 0.67));min-width: 6rem;
}
.tab:before, .tab:after {content: "";height: 100%;position: absolute;background: var(--background);border-radius: 8px 8px 0 0;width: 30px;top: 0;
}
.tab:before {right: -16px;transform: skew(25deg);border-radius: 0 8px 0 0;
}
.tab:after {transform: skew(-25deg);left: -16px;border-radius: 8px 0 0 0;
}
.tab.active {z-index: 50;position: relative;
}
.tab.active span {background-image: linear-gradient(to right, rgba(40, 210, 176, 0.4), rgba(61, 206, 232, 0.35), rgba(40, 126, 231, 0.33));box-shadow: 0 2px 3px rgba(40, 157, 186, 0.64);border-radius: 5px;color: #d139e2;
}.content {border-radius: 10px;position: relative;width: 100%;
}
.content #tab-1 {display: block;
}
.content:before {content: "";width: 100%;height: 100%;position: absolute;z-index: -1;top: 0;left: 0;border-radius: inherit;
}
.content__inner {font-family: "Yomogi", sans-serif;display: none;background: var(--background);border-radius: inherit;padding: 1rem;filter: drop-shadow(0px -2px 2px rgba(0, 0, 0, 0.1));z-index: 5;
}.folder {margin: 1rem auto;max-width: 50rem;width: 100%;scrollbar-height: none;-ms-overflow-style: none;
}
.folder ::-webkit-scrollbar {background: transparent;display: none;
}.page {padding: 1.5rem;border-radius: 2px;min-height: 20rem;line-height: 160%;background-color: rgb(249, 249, 249);filter: drop-shadow(0px 1px 3px rgba(0, 0, 0, 0.15));background-image: linear-gradient(#e4e4e4 1px, transparent 1px);background-size: 8% 8%, 2px 2px;
}.tabs {padding: 2rem 0 0 0;width: 100%;margin: 0 0.5rem;overflow-x: auto;width: calc(100% - 1rem);white-space: nowrap;
}
@media (min-width: 50rem) {.tabs {margin: 0 2rem;width: calc(100% - 4rem);}
}
三:script.js
function openTab(evt, tab) {var i, tabcontent, tablinks;tabcontent = document.getElementsByClassName("content__inner");for (i = 0; i < tabcontent.length; i++) {tabcontent[i].style.display = "none";}tablinks = document.getElementsByClassName("tab");for (i = 0; i < tablinks.length; i++) {tablinks[i].className = tablinks[i].className.replace(" active", "");}document.getElementById(tab).style.display = "block";evt.currentTarget.className += " active";
}
if (window.innerWidth > 800) {const scrollContainer = document.querySelector(".tabs");scrollContainer.addEventListener("wheel", (evt) => {evt.preventDefault();scrollContainer.scrollLeft += evt.deltaY;});
}