国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

CSS和JS實現唯美星空軌跡運動效果

來源:懂視網 責編:小OO 時間:2020-11-27 18:49:21
文檔

CSS和JS實現唯美星空軌跡運動效果

先給大家分享效果圖。給大家分享一個使用CSS+JS實現的唯美星空軌跡運動效果,這樣的效果不輸給Flash。相關代碼如下:<。<。doctype html>;<;html lang=";en";>;<;head>;<;meta charset=";UTF-8";>;<;title>;cloth<;/title>;<;style>;body { background: #000;}img { display: block;float: left;margin: 0 1px 0 0;display: block;float: left;left: 0;top: 0;)。
推薦度:
導讀先給大家分享效果圖。給大家分享一個使用CSS+JS實現的唯美星空軌跡運動效果,這樣的效果不輸給Flash。相關代碼如下:<。<。doctype html>;<;html lang=";en";>;<;head>;<;meta charset=";UTF-8";>;<;title>;cloth<;/title>;<;style>;body { background: #000;}img { display: block;float: left;margin: 0 1px 0 0;display: block;float: left;left: 0;top: 0;)。
本文主要和大家分享一個使用CSS+JS實現的唯美星空軌跡運動效果,效果非常逼真,下面小編給大家帶來了實例代碼,需要的朋友參考下,希望能幫助到大家。

先給大家分享效果圖:

給大家分享一個使用CSS+JS實現的唯美星空軌跡運動效果, 這樣的效果不輸給Flash 。相關代碼如下:

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>cloth</title>
 <style>
 body {
 background: #000; 
}
img {
 display: block;
 float: left; 
 margin: 0 1px 0 0;
}
canvas {
 background: #131c35 linear-gradient(#192853, #131c35);
 display: block;
 float: left;
 /* uncomment to test overlay */
 /*
 position: absolute;
 left: 0;
 opacity: .5;
 top: 0;
 */ 
}
 </style>
</head>
<body>
 <p id="container"></p>
 <script type="text/javascript" src="http://cdn.gbtags.com/jquery/1.11.1/jquery.min.js"></script>
 <canvas id="c"></canvas>
 <img src="http://dribbble.s3.amazonaws.com/users/36991/screenshots/674715/game.png" />
 <script>
 var c = document.getElementById('c'),
 ctx = c.getContext('2d'),
 cw = c.width = 400,
 ch = c.height = 300,
 rand = function(a,b){return ~~((Math.random()*(b-a+1))+a);},
 dToR = function(degrees){
 return degrees * (Math.PI / 180);
 },
 circle = {
 x: (cw / 2) + 5,
 y: (ch / 2) + 22,
 radius: 90,
 speed: 2,
 rotation: 0,
 angleStart: 270,
 angleEnd: 90,
 hue: 220,
 thickness: 18,
 blur: 25
 },
 particles = [],
 particleMax = 100,
 updateCircle = function(){
 if(circle.rotation < 360){
 circle.rotation += circle.speed;
 } else {
 circle.rotation = 0; 
 }
 },
 renderCircle = function(){
 ctx.save();
 ctx.translate(circle.x, circle.y);
 ctx.rotate(dToR(circle.rotation));
 ctx.beginPath();
 ctx.arc(0, 0, circle.radius, dToR(circle.angleStart), dToR(circle.angleEnd), true);
 ctx.lineWidth = circle.thickness; 
 ctx.strokeStyle = gradient1;
 ctx.stroke();
 ctx.restore();
 },
 renderCircleBorder = function(){
 ctx.save();
 ctx.translate(circle.x, circle.y);
 ctx.rotate(dToR(circle.rotation));
 ctx.beginPath();
 ctx.arc(0, 0, circle.radius + (circle.thickness/2), dToR(circle.angleStart), dToR(circle.angleEnd), true);
 ctx.lineWidth = 2; 
 ctx.strokeStyle = gradient2;
 ctx.stroke();
 ctx.restore();
 },
 renderCircleFlare = function(){
 ctx.save();
 ctx.translate(circle.x, circle.y);
 ctx.rotate(dToR(circle.rotation+185));
 ctx.scale(1,1);
 ctx.beginPath();
 ctx.arc(0, circle.radius, 30, 0, Math.PI *2, false);
 ctx.closePath();
 var gradient3 = ctx.createRadialGradient(0, circle.radius, 0, 0, circle.radius, 30); 
 gradient3.addColorStop(0, 'hsla(330, 50%, 50%, .35)');
 gradient3.addColorStop(1, 'hsla(330, 50%, 50%, 0)');
 ctx.fillStyle = gradient3;
 ctx.fill(); 
 ctx.restore();
 },
 renderCircleFlare2 = function(){
 ctx.save();
 ctx.translate(circle.x, circle.y);
 ctx.rotate(dToR(circle.rotation+165));
 ctx.scale(1.5,1);
 ctx.beginPath();
 ctx.arc(0, circle.radius, 25, 0, Math.PI *2, false);
 ctx.closePath();
 var gradient4 = ctx.createRadialGradient(0, circle.radius, 0, 0, circle.radius, 25);
 gradient4.addColorStop(0, 'hsla(30, 100%, 50%, .2)');
 gradient4.addColorStop(1, 'hsla(30, 100%, 50%, 0)');
 ctx.fillStyle = gradient4;
 ctx.fill(); 
 ctx.restore();
 },
 createParticles = function(){
 if(particles.length < particleMax){
 particles.push({
 x: (circle.x + circle.radius * Math.cos(dToR(circle.rotation-85))) + (rand(0, circle.thickness*2) - circle.thickness),
 y: (circle.y + circle.radius * Math.sin(dToR(circle.rotation-85))) + (rand(0, circle.thickness*2) - circle.thickness),
 vx: (rand(0, 100)-50)/1000,
 vy: (rand(0, 100)-50)/1000,
 radius: rand(1, 6)/2,
 alpha: rand(10, 20)/100
 });
 }
 },
 updateParticles = function(){
 var i = particles.length;
 while(i--){
 var p = particles[i];
 p.vx += (rand(0, 100)-50)/750;
 p.vy += (rand(0, 100)-50)/750;
 p.x += p.vx;
 p.y += p.vy;
 p.alpha -= .01;
 if(p.alpha < .02){
 particles.splice(i, 1)
 }
 }
 },
 renderParticles = function(){
 var i = particles.length;
 while(i--){
 var p = particles[i];
 ctx.beginPath();
 ctx.fillRect(p.x, p.y, p.radius, p.radius);
 ctx.closePath();
 ctx.fillStyle = 'hsla(0, 0%, 100%, '+p.alpha+')';
 }
 },
 clear = function(){
 ctx.globalCompositeOperation = 'destination-out';
 ctx.fillStyle = 'rgba(0, 0, 0, .1)';
 ctx.fillRect(0, 0, cw, ch);
 ctx.globalCompositeOperation = 'lighter'; 
 }
 loop = function(){
 clear();
 updateCircle();
 renderCircle();
 renderCircleBorder();
 renderCircleFlare();
 renderCircleFlare2();
 createParticles();
 updateParticles();
 renderParticles();
 }
/* Append Canvas */
//document.body.appendChild(c);
/* Set Constant Properties */
ctx.shadowBlur = circle.blur;
ctx.shadowColor = 'hsla('+circle.hue+', 80%, 60%, 1)';
ctx.lineCap = 'round'
var gradient1 = ctx.createLinearGradient(0, -circle.radius, 0, circle.radius);
gradient1.addColorStop(0, 'hsla('+circle.hue+', 60%, 50%, .25)');
gradient1.addColorStop(1, 'hsla('+circle.hue+', 60%, 50%, 0)');
var gradient2 = ctx.createLinearGradient(0, -circle.radius, 0, circle.radius);
gradient2.addColorStop(0, 'hsla('+circle.hue+', 100%, 50%, 0)');
gradient2.addColorStop(.1, 'hsla('+circle.hue+', 100%, 100%, .7)');
gradient2.addColorStop(1, 'hsla('+circle.hue+', 100%, 50%, 0)');
/* Loop It, Loop It Good */
setInterval(loop, 16);
 </script>
</body>
</html>
 -

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

CSS和JS實現唯美星空軌跡運動效果

先給大家分享效果圖。給大家分享一個使用CSS+JS實現的唯美星空軌跡運動效果,這樣的效果不輸給Flash。相關代碼如下:<。<。doctype html>;<;html lang=";en";>;<;head>;<;meta charset=";UTF-8";>;<;title>;cloth<;/title>;<;style>;body { background: #000;}img { display: block;float: left;margin: 0 1px 0 0;display: block;float: left;left: 0;top: 0;)。
推薦度:
標簽: 運動 js 效果
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产高清不卡码一区二区三区 | 国产aⅴ一区二区 | 精品视频第一页 | 欧美网站在线看 | 亚洲色图在线播放 | 精品欧美一区二区三区在线观看 | 久久www免费人成精品香蕉 | 在线视频一二三区 | 欧美三级不卡 | 久久精品一级 | 可以看的毛片网站 | 全部费免一级毛片不收费 | 在线观看国产日韩 | 国外欧美一区另类中文字幕 | 韩国精品一区二区久久 | 欧美综合图片区 | 一区高清 | 91成人午夜性a一级毛片 | 亚洲精品免费在线 | 国产综合社区 | 欧美激情一区二区 | 精品日韩欧美一区二区三区 | 欧美特黄一区二区三区 | 欧美精品午夜久久久伊人 | 日韩在线免费 | 91精品国产综合久久久久久 | 精品国产三级a在线观看 | 国产不卡精品一区二区三区 | 免费国产小视频在线观看 | 免费一级a毛片在线播放直播 | 日韩1页| 99久久精品国产一区二区小说 | 精品亚洲一区二区三区 | 亚洲国产综合专区在线电影 | 亚洲一区二区三区久久久久 | 亚洲色图欧美在线 | 多人伦精品一区二区三区视频 | 欧美不卡二区 | 欧美啊v在线观看 | 在线观看网站国产 | 久久综合精品国产一区二区三区 |