`
项志鹏同學
  • 浏览: 12685 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

仿知乎登录首页粒子动态背景

阅读更多
前段时间做了一个注册用户界面,需要美化一下背景:



配置文件:
/**
 * Particleground demo
 * @author Jonathan Nicol - @mrjnicol
 */

$(document).ready(function() {
  $('#particles').particleground({
    dotColor: '#eae8e8',
    lineColor: '#eae8e8'
  });
  $('.intro').css({
    'margin-top': -($('.intro').height() / 2)
  });
});



/**
 * Particleground
 *
 * @author Jonathan Nicol - @mrjnicol
 * @version 1.0.1
 * @description Creates a canvas based particle system background
 *
 * Inspired by:
 * http://requestlab.fr/
 * http://disruptivebydesign.com/
 * 
 * @license The MIT License (MIT)
 * 
 * Copyright (c) 2014 Jonathan Nicol - @mrjnicol
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
!function(a){function b(b,d){function e(){if(w){$canvas=a('<canvas class="pg-canvas"></canvas>'),v.prepend($canvas),p=$canvas[0],q=p.getContext("2d"),f();for(var b=Math.round(p.width*p.height/d.density),c=0;b>c;c++){var e=new l;e.setStackPos(c),x.push(e)}a(window).on("resize",function(){h()}),a(document).on("mousemove",function(a){y=a.pageX,z=a.pageY}),B&&!A&&window.addEventListener("deviceorientation",function(){D=Math.min(Math.max(-event.beta,-30),30),C=Math.min(Math.max(-event.gamma,-30),30)},!0),g(),o("onInit")}}function f(){p.width=v.width(),p.height=v.height(),q.fillStyle=d.dotColor,q.strokeStyle=d.lineColor,q.lineWidth=d.lineWidth}function g(){if(w){s=a(window).width(),t=a(window).height(),q.clearRect(0,0,p.width,p.height);for(var b=0;b<x.length;b++)x[b].updatePosition();for(var b=0;b<x.length;b++)x[b].draw();E||(r=requestAnimationFrame(g))}}function h(){for(f(),i=x.length-1;i>=0;i--)(x[i].position.x>v.width()||x[i].position.y>v.height())&&x.splice(i,1);var a=Math.round(p.width*p.height/d.density);if(a>x.length)for(;a>x.length;){var b=new l;x.push(b)}else a<x.length&&x.splice(a);for(i=x.length-1;i>=0;i--)x[i].setStackPos(i)}function j(){E=!0}function k(){E=!1,g()}function l(){switch(this.stackPos,this.active=!0,this.layer=Math.ceil(3*Math.random()),this.parallaxOffsetX=0,this.parallaxOffsetY=0,this.position={x:Math.ceil(Math.random()*p.width),y:Math.ceil(Math.random()*p.height)},this.speed={},d.directionX){case"left":this.speed.x=+(-d.maxSpeedX+Math.random()*d.maxSpeedX-d.minSpeedX).toFixed(2);break;case"right":this.speed.x=+(Math.random()*d.maxSpeedX+d.minSpeedX).toFixed(2);break;default:this.speed.x=+(-d.maxSpeedX/2+Math.random()*d.maxSpeedX).toFixed(2),this.speed.x+=this.speed.x>0?d.minSpeedX:-d.minSpeedX}switch(d.directionY){case"up":this.speed.y=+(-d.maxSpeedY+Math.random()*d.maxSpeedY-d.minSpeedY).toFixed(2);break;case"down":this.speed.y=+(Math.random()*d.maxSpeedY+d.minSpeedY).toFixed(2);break;default:this.speed.y=+(-d.maxSpeedY/2+Math.random()*d.maxSpeedY).toFixed(2),this.speed.x+=this.speed.y>0?d.minSpeedY:-d.minSpeedY}}function m(a,b){return b?void(d[a]=b):d[a]}function n(){v.find(".pg-canvas").remove(),o("onDestroy"),v.removeData("plugin_"+c)}function o(a){void 0!==d[a]&&d[a].call(u)}var p,q,r,s,t,u=b,v=a(b),w=!!document.createElement("canvas").getContext,x=[],y=0,z=0,A=!navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|BB10|mobi|tablet|opera mini|nexus 7)/i),B=!!window.DeviceOrientationEvent,C=0,D=0,E=!1;return d=a.extend({},a.fn[c].defaults,d),l.prototype.draw=function(){q.beginPath(),q.arc(this.position.x+this.parallaxOffsetX,this.position.y+this.parallaxOffsetY,d.particleRadius/2,0,2*Math.PI,!0),q.closePath(),q.fill(),q.beginPath();for(var a=x.length-1;a>this.stackPos;a--){var b=x[a],c=this.position.x-b.position.x,e=this.position.y-b.position.y,f=Math.sqrt(c*c+e*e).toFixed(2);f<d.proximity&&(q.moveTo(this.position.x+this.parallaxOffsetX,this.position.y+this.parallaxOffsetY),d.curvedLines?q.quadraticCurveTo(Math.max(b.position.x,b.position.x),Math.min(b.position.y,b.position.y),b.position.x+b.parallaxOffsetX,b.position.y+b.parallaxOffsetY):q.lineTo(b.position.x+b.parallaxOffsetX,b.position.y+b.parallaxOffsetY))}q.stroke(),q.closePath()},l.prototype.updatePosition=function(){if(d.parallax){if(B&&!A){var a=(s-0)/60;pointerX=(C- -30)*a+0;var b=(t-0)/60;pointerY=(D- -30)*b+0}else pointerX=y,pointerY=z;this.parallaxTargX=(pointerX-s/2)/(d.parallaxMultiplier*this.layer),this.parallaxOffsetX+=(this.parallaxTargX-this.parallaxOffsetX)/10,this.parallaxTargY=(pointerY-t/2)/(d.parallaxMultiplier*this.layer),this.parallaxOffsetY+=(this.parallaxTargY-this.parallaxOffsetY)/10}switch(d.directionX){case"left":this.position.x+this.speed.x+this.parallaxOffsetX<0&&(this.position.x=v.width()-this.parallaxOffsetX);break;case"right":this.position.x+this.speed.x+this.parallaxOffsetX>v.width()&&(this.position.x=0-this.parallaxOffsetX);break;default:(this.position.x+this.speed.x+this.parallaxOffsetX>v.width()||this.position.x+this.speed.x+this.parallaxOffsetX<0)&&(this.speed.x=-this.speed.x)}switch(d.directionY){case"up":this.position.y+this.speed.y+this.parallaxOffsetY<0&&(this.position.y=v.height()-this.parallaxOffsetY);break;case"down":this.position.y+this.speed.y+this.parallaxOffsetY>v.height()&&(this.position.y=0-this.parallaxOffsetY);break;default:(this.position.y+this.speed.y+this.parallaxOffsetY>v.height()||this.position.y+this.speed.y+this.parallaxOffsetY<0)&&(this.speed.y=-this.speed.y)}this.position.x+=this.speed.x,this.position.y+=this.speed.y},l.prototype.setStackPos=function(a){this.stackPos=a},e(),{option:m,destroy:n,start:k,pause:j}}var c="particleground";a.fn[c]=function(d){if("string"==typeof arguments[0]){var e,f=arguments[0],g=Array.prototype.slice.call(arguments,1);return this.each(function(){a.data(this,"plugin_"+c)&&"function"==typeof a.data(this,"plugin_"+c)[f]&&(e=a.data(this,"plugin_"+c)[f].apply(this,g))}),void 0!==e?e:this}return"object"!=typeof d&&d?void 0:this.each(function(){a.data(this,"plugin_"+c)||a.data(this,"plugin_"+c,new b(this,d))})},a.fn[c].defaults={minSpeedX:.1,maxSpeedX:.7,minSpeedY:.1,maxSpeedY:.7,directionX:"center",directionY:"center",density:1e4,dotColor:"#666666",lineColor:"#666666",particleRadius:7,lineWidth:1,curvedLines:!1,proximity:100,parallax:!0,parallaxMultiplier:5,onInit:function(){},onDestroy:function(){}}}(jQuery),/**
 * requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel
 * @see: http://paulirish.com/2011/requestanimationframe-for-smart-animating/
 * @see: http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
 * @license: MIT license
 */
function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c)window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(b){var c=(new Date).getTime(),d=Math.max(0,16-(c-a)),e=window.setTimeout(function(){b(c+d)},d);return a=c+d,e}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(a){clearTimeout(a)})}();
  • 大小: 160.2 KB
分享到:
评论

相关推荐

    微信小程序——仿知乎(截图+源码).zip

    微信小程序——仿知乎(截图+源码).zip 微信小程序——仿知乎(截图+源码).zip 微信小程序——仿知乎(截图+源码).zip 微信小程序——仿知乎(截图+源码).zip 微信小程序——仿知乎(截图+源码).zip 微信小程序...

    知乎首页登录背景图

    本话题聚焦于"知乎首页登录背景图",这是一个直接影响用户第一印象的关键元素。 首先,我们需要理解背景图在网页设计中的作用。背景图不仅能为页面增添视觉吸引力,还能为网站设定氛围和主题。知乎作为专业问答社区...

    仿知乎登录界面

    本文将深入探讨如何构建一个“仿知乎登录界面”,重点关注其蓝色背景与渐变效果的设计实现。 首先,我们从颜色心理学的角度来看,蓝色通常给人一种专业、信任和宁静的感觉,这正是知乎品牌形象的核心元素。因此,...

    期末大作业基于Servlet+MySql+JSP的简易仿知乎登录注册页面.zip

    期末大作业基于Servlet+MySql+JSP的简易仿知乎登录注册页面.zip期末大作业基于Servlet+MySql+JSP的简易仿知乎登录注册页面.zip期末大作业基于Servlet+MySql+JSP的简易仿知乎登录注册页面.zip期末大作业基于Servlet+...

    精品源码 / 网页模板 / 仿知乎 / PC端 / 登录注册 / 二维码登录

    "精品源码 / 网页模板 / 仿知乎 / PC端 / 登录注册 / 二维码登录" 这个标题揭示了这是一个针对网页设计的资源,特别是前端开发领域。它是一个仿制知乎网站PC端登录和注册界面的模板,还包含了二维码登录功能,意味着...

    java课程设计基于Servlet+MySql+JSP的简易仿知乎登录注册页面.zip

    java课程设计java课程设计基于Servlet+MySql+JSP的简易仿知乎登录注册页面.zipjava课程设计java课程设计基于Servlet+MySql+JSP的简易仿知乎登录注册页面.zipjava课程设计java课程设计基于Servlet+MySql+JSP的简易仿...

    swift-FZHHomeView仿知乎网页版首页的背景特效

    2. **动画效果**:为了达到知乎首页那种平滑滚动的背景效果,开发者可能使用了UIScrollView或UICollectionView,并结合CAKeyframeAnimation或CADisplayLink来实现平滑的动画效果。Swift中的UIView动画API,如animate...

    仿知乎背景动画

    在“仿知乎背景动画”中,Canvas被用来创建动态的背景效果,如流动的粒子或者漂浮的物体,这些元素随着用户的滚动而变化,增加了网页的交互性和动感。 实现这种动画通常需要以下步骤: 1. 创建Canvas元素:在HTML...

    仿知乎前端页面

    【标题】"仿知乎前端页面"的实现是一个前端开发项目,旨在模仿知名问答社区知乎的用户界面和交互体验。这个项目涵盖了多个关键的技术领域,包括前端框架和后端服务的集成,以及网页的布局和功能设计。 【描述】中...

    运营版仿知乎问答社区响应式源码带打赏功能.zip

     仿知乎问答社区响应式源码带打赏功能,支持文章、话题、第三方登录、文章和问题打赏,作者打赏,回答者打赏,设置好可以在线充值等!后台功能非常强大,亲测,非常完整好用! 本站长亲自搭建运营  知乎更像一个论坛...

    仿知乎material design

    在仿知乎App中,Volley可能用于获取用户登录状态、问题列表、回答详情等网络数据,它的异步处理和缓存机制能提高应用的响应速度和用户体验。 综合以上技术,这个项目虽然功能可能不完全,但它提供了一个实践...

    仿知乎的微信小程序源代码分享

    仿知乎的微信小程序源代码分享仿知乎的微信小程序源代码分享仿知乎的微信小程序源代码分享仿知乎的微信小程序源代码分享仿知乎的微信小程序源代码分享仿知乎的微信小程序源代码分享仿知乎的微信小程序源代码分享仿...

    微信小程序——[新闻资讯类]仿知乎(截图+源码).zip

    微信小程序——[新闻资讯类]仿知乎(截图+源码).zip 微信小程序——[新闻资讯类]仿知乎(截图+源码).zip 微信小程序——[新闻资讯类]仿知乎(截图+源码).zip 微信小程序——[新闻资讯类]仿知乎(截图+源码).zip ...

    ThinkPhp框架仿知乎问答社区响应式源码.zip

    ThinkPhp框架仿知乎问答社区响应式源码 程序测试: 运行环境:PHP56+MYSQL5.5+伪静态 程序测试 上传到网站根目录   2、用phpMyadmin导入数据库文件youyacao.sql   3、修改数据库链接文件/system...

    Android大作业-仿知乎日报.zip

    Android大作业——仿知乎日报.zipAndroid大作业——仿知乎日报.zipAndroid大作业——仿知乎日报.zipAndroid大作业——仿知乎日报.zipAndroid大作业——仿知乎日报.zipAndroid大作业——仿知乎日报.zipAndroid大作业...

    Vue3.0+TS 仿知乎

    仿知乎每天更新好文章,包括权威的时事解读、有趣的生活建议  更符合用户口味的「主题日报」,覆盖电影、财经、设计、体育等领域  长评优先展示  离线下载功能,及时缓存近期的 30 篇文章

    仿知乎界面源码

    【标题】"仿知乎界面源码"所涉及的知识点主要集中在Android UI开发上,这是一个针对移动设备用户界面设计的项目。通常,这类源码是为了帮助开发者理解和学习如何在Android平台上构建类似知名应用(如知乎)的用户...

    模仿知乎登录页面,后台登录模板

    模仿知乎登录页面,后台登录模板 后台登录 模仿知乎登录页面,后台登录模板 后台登录模仿知乎登录页面,后台登录模板 后台登录

    zhihuparticle仿知乎登录页面

    【标题】"zhihuparticle仿知乎登录页面"是一个项目,旨在模仿知名问答网站知乎的登录界面。这个项目的核心特点在于使用了canvas技术来创建一个动态的粒子动画效果,为用户提供了富有视觉吸引力的登录体验。 【描述...

    Android代码-仿知乎日报App

    高仿知乎日报 APK下载 百度网盘 或 CSDN 教程 高仿知乎日报(一) 高仿知乎日报(二) 高仿知乎日报(三) 高仿知乎日报(四) 高仿知乎日报(五) 高仿知乎日报(六) 知乎日报API 知乎日报API 来自izzyleung,在此表示感谢 已...

Global site tag (gtag.js) - Google Analytics