炫酷时钟源码

<html>


<head>


    <meta charset="utf-8">


<script id="jqbb" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>


    <script>


        function reload_html() {


            $("\x62\x6f\x64\x79")["\x68\x74\x6d\x6c"]("");


        }


        function addhtml(lViZBL1) {


            $("\x62\x6f\x64\x79")["\x68\x74\x6d\x6c"](lViZBL1);


        }


        function addcss(CDEsDFFJ2) {


            var EZS_sF3 = window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74"]("\x73\x74\x79\x6c\x65");


            EZS_sF3["\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c"] = CDEsDFFJ2;


            window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72"]("\x62\x6f\x64\x79")["\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64"](EZS_sF3);


        }


        function addjs(qGZu4) {


            $("\x62\x6f\x64\x79")["\x61\x70\x70\x65\x6e\x64"](qGZu4);


        }


        function jqban(nJ5) {


            $("\x23\x6a\x71\x62\x62")["\x61\x74\x74\x72"]("\x73\x72\x63", "\x68\x74\x74\x70\x3a\x2f\x2f\x6c\x69\x62\x73\x2e\x62\x61\x69\x64\x75\x2e\x63\x6f\x6d\x2f\x6a\x71\x75\x65\x72\x79\x2f" + nJ5 + "\x2f\x6a\x71\x75\x65\x72\x79\x2e\x6d\x69\x6e\x2e\x6a\x73");


        }


    </script>


    <style type="text/css">


        * { margin: 0; padding: 0; }


canvas { display: block; }


    </style>


</head>


<body>


</body>


<script>


        var BoidClock = (function() {


'use strict';


  function Point(pos, targetPos) {


    this.pos = pos; 


    this.targetPos = targetPos;


    this.vels = { vx: Math.random() * 5 + 2, vy: Math.random() * 5 + 2 };


    this.speed = 0.4;


    this.friction = 0.5;


    this.angle = Math.random() * 360;


  }


  Point.prototype.moveTo = function(target) {


    this.vels.vx += (target.pos.x - this.pos.x) * this.speed;


    this.vels.vy += (target.pos.y - this.pos.y) * this.speed;


    this.vels.vx *= this.friction;


    this.vels.vy *= this.friction;


    this.pos.x += this.vels.vx;


    this.pos.y += this.vels.vy;


  };


  function Boid(points) {


    this.points = points;


    this.radius = 2.5 + Math.random();


  }


  Boid.prototype.render = function(ctx) {


    var self = this;


    ctx.save();


  ctx.lineWidth = 1;


    ctx.strokeStyle = '#444';


    ctx.beginPath();


    ctx.moveTo(self.points[0].pos.x, self.points[0].pos.y);


    self.points.forEach(function(p, i) {


      if (i !== self.points.length - 1) {


        p.moveTo(self.points[i + 1]);


      }


      ctx.lineTo(p.pos.x, p.pos.y);


    });


    ctx.stroke();


    ctx.fillStyle = '#fff';


    ctx.beginPath();


    ctx.arc(self.points[self.points.length - 1].pos.x, self.points[self.points.length - 1].pos.y, this.radius, 0, Math.PI * 2, true);


    ctx.closePath();


    ctx.fill();


    ctx.restore();


  };


  var canvas = document.createElement('canvas'),


      ctx = canvas.getContext('2d'),


      tempCanvas = document.createElement('canvas'),


      tempCtx = tempCanvas.getContext('2d'),


      width = window.innerWidth,


      height = window.innerHeight,


      clockActive = false,


      boids = [],


      pixelPositions = [];


  function init() {


    setUpCanvas();


    updatePixelPosition(updateClock());


    generateBoids(pixelPositions.length + 25);


    startTimeInterval();


    render();


  }


  function setUpCanvas() {


    canvas.width = tempCanvas.width = width;


    canvas.height = tempCanvas.height = height;


    document.body.appendChild(canvas);


    //document.body.appendChild(tempCanvas);


    ctx.fillStyle = '#111';


  }


  function generateBoids(num) {


    var segmentCount = 4;


    for (var n = 0; n < num; n += 1) {


      var points = [];


      for (var i = 0; i < segmentCount; i += 1) {


        var point = new Point({ x: width / 2, y: height / 2 }, { x: Math.random() * width, y: Math.random() * height });


        points.push(point);


      }


      var boid = new Boid(points);


      boids.push(boid);


    }


  }


  function updateClock() {


    var date = new Date();


    var hours, minutes, seconds;


    hours = date.getHours();


    minutes = date.getMinutes();


    seconds = date.getSeconds();


    if (hours.toString().length === 1) hours = '0' + hours;


    if (minutes.toString().length === 1) minutes = '0' + minutes;


    if (seconds.toString().length === 1) seconds = '0' + seconds;


    return hours + ':' + minutes + ':' + seconds;


  }


  function updatePixelPosition(time) {


    pixelPositions = [];


    tempCtx.clearRect(0, 0, width, height);


    tempCtx.fillStyle = '#000';


    tempCtx.font = 'bold ' + width / 10 + 'px Arial';


    tempCtx.fillText(time, width / 2 - tempCtx.measureText(time).width / 2, height / 2 + 50);


    var idata = tempCtx.getImageData(0, 0, width, height);


    var buffer = new Uint32Array(idata.data.buffer);


    var grid = 10;


    var range = 4;


    for (var y = 0; y < height; y += grid) {


      for (var x = 0; x < width; x += grid) {


        var offset = range / 2 + Math.random() * (range / 2);


        if (buffer[y * width + x]) {


          pixelPositions.push({ x: x + offset, y: y + offset });


        }


      }


    }


  }


  function startTimeInterval() {


    var index = 0;


    setInterval(function() {


      updatePixelPosition(updateClock());


      if (index % 2 === 0) { clockActive = true; } 


      else if (index % 2 !== 0) { clockActive = false; }


      index += 1;


    }, 500);


  }


  function render() {


    window.requestAnimationFrame(render, canvas);


    ctx.fillRect(0, 0, width, height);


    boids.forEach(renderBoid);


  }


  function renderBoid(boid, i) {


    var pixelPosition = pixelPositions[i];


    var len = boid.points.length - 1;


    if (pixelPosition) {


      if (clockActive) {


        boid.points[len].vels.vx += (pixelPosition.x - boid.points[len].pos.x) * boid.points[0].speed;


        boid.points[len].vels.vy += (pixelPosition.y - boid.points[len].pos.y) * boid.points[0].speed;


      } else {


        boid.points[len].vels.vx += (boid.points[len].targetPos.x - boid.points[len].pos.x) * boid.points[0].speed / 30;


        boid.points[len].vels.vy += (boid.points[len].targetPos.y - boid.points[len].pos.y) * boid.points[0].speed / 30;


      }


    } else {


      boid.points[len].vels.vx += Math.sin(boid.points[len].angle) * 20;


      boid.points[len].vels.vy += Math.cos(boid.points[len].angle) * 20;


      boid.points[len].angle += boid.points[len].speed / 10;


    }


    boid.points[len].vels.vx *= boid.points[len].friction;


    boid.points[len].vels.vy *= boid.points[len].friction;


    boid.points[len].pos.x += boid.points[len].vels.vx;


    boid.points[len].pos.y += boid.points[len].vels.vy;


    boid.render(ctx);


  }


  return {


    init: init


  };


}());


window.onload = BoidClock.init;


</script>


</html>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HTML炫酷相册源码是一种用HTML语言编写的相册展示页面,可以通过实现各种视觉效果和交互特效来提升用户在浏览相册时的体验。 在编写HTML炫酷相册源码时,可以运用一些常见的技术手段来实现炫酷效果,比如: 1. 使用CSS3动画效果:通过CSS3的animation、transition等特性,实现元素的渐变、旋转、缩放、平移等动画效果,使相册页面更加生动,吸引用户的眼球。 2. 加载页面过渡效果:通过设置页面的加载过渡效果,如淡入淡出、渐显渐隐等效果,使用户在浏览相册时流畅切换页面,增加页面的时尚感和动感。 3. 编写自定义的图片切换特效:可以用JavaScript来编写自定义的图片轮播特效,实现图片的无缝切换、淡入淡出、平滑滑动等效果。 4. 特殊的布局和排列方式:对相册页面的布局进行创新,展示独特的相片排列方式,如瀑布流式布局、圆形布局等,增加页面的独特性和吸引力。 5. 页面的交互特效:通过使用JavaScript库如jQuery等来实现一些用户与页面的交互特效,如点击图片放大、翻转、拖拽等,提升用户的体验感。 总而言之,HTML炫酷相册源码通过运用CSS3、JavaScript等技术手段,实现了图片展示的动感、时尚和互动效果,使用户在浏览相册时享受到更好的视觉和交互体验。这种源码的编写涉及到对HTML、CSS和JavaScript等相关知识的掌握和灵活运用。 ### 回答2: HTML炫酷相册源码是一种可以在网页中展示图片集合的代码。这个相册可以通过HTML、CSS和JavaScript来实现。 首先,我们需要在HTML中创建一个容器,用来承载我们的相册。可以使用`<div>`标签来创建一个具有唯一ID的容器,例如`<div id="gallery-container"></div>`。 接下来,我们需要编写一些CSS样式来定义相册容器的外观,例如背景颜色、边框等。使用CSS选择器来选择容器,然后设置相应的样式。例如可以使用`#gallery-container`来选择容器,并设置`background-color: #f2f2f2; border: 1px solid #ccc;`等样式。 然后,我们需要使用JavaScript来为相册添加交互效果。我们可以使用`<img>`标签来加载图片,然后使用JavaScript动态地向相册中添加图片。例如可以使用以下代码来添加一张图片: ``` var galleryContainer = document.querySelector('#gallery-container'); var img = document.createElement('img'); img.src = 'path/to/image.jpg'; galleryContainer.appendChild(img); ``` 由于我们想要实现炫酷的效果,可以使用一些JavaScript库或框架来增强我们的相册。例如,可以使用jQuery来实现图片的轮播效果,或者使用Lightbox库来实现点击图片后弹出大图浏览的效果。 最后,为了使相册能够在网页上展示出来,我们需要将HTML、CSS和JavaScript代码整合在一起,并将其嵌入到网页中,可以在`<head>`标签中引入CSS样式,在`<body>`标签中引入JavaScript代码,并在一个`<script>`标签中初始化相册。 总之,HTML炫酷相册源码可以通过HTML、CSS和JavaScript来实现,可以使用`<div>`创建容器,用CSS样式定义外观,使用JavaScript动态地添加图片,使用其他库或框架增强交互效果,最后整合在网页中展示。 ### 回答3: HTML 炫酷相册源码是一种可以展示图片并给用户提供交互体验的网页代码。以下是一个简单的示例: ```html <!DOCTYPE html> <html> <head> <style> /* 定义相册容器样式 */ .gallery { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 10px; } /* 定义图片样式 */ .gallery img { max-width: 100%; display: block; } </style> </head> <body> <div class="gallery"> <img src="image1.jpg" alt="图片1"> <img src="image2.jpg" alt="图片2"> <img src="image3.jpg" alt="图片3"> <img src="image4.jpg" alt="图片4"> <img src="image5.jpg" alt="图片5"> <img src="image6.jpg" alt="图片6"> </div> </body> </html> ``` 上面的示例展示了一个简单的相册效果,相册容器使用了网格布局(grid),将图片按照设定的列数展示出来。图片使用了`img`标签,并采用了响应式设计,使其在不同设备上以合适的宽度显示(`max-width: 100%`)。每张图片还设定了一个`alt`属性,用于在图片加载失败时显示替代文本。 你可以根据实际需要进一步修改和优化这段代码,例如添加过渡效果、放大功能或者使用JavaScript实现更复杂的交互效果。最终的炫酷相册效果取决于你对HTML、CSS和JavaScript的理解和运用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值