菜单

  • 分类
  • 首页
  • 美图
  • 作品
  • 源码
  • 好站推荐
  • 仿站
  • 其他分类
    • 代码
    • 教程
    • 问答
    • 视频
  • 独立页面
  • 动态
  • 归档
  • 关于我
admin
  • 首页
  • 美图
  • 作品
  • 源码
  • 好站推荐
  • 仿站
  • 其他分类
    代码 教程 问答 视频
  • 动态
  • 归档
  • 关于我

即时搜索

热门搜索

1-seven一款白里有点蓝的typecho主题

阅读 500

HTML | 仿南博APP小圈子UI

阅读 488

在线渐变色自定义调节的源码

阅读 460

纯CSS静态弹窗层

阅读 352

多用途html5商业业务着陆页模板

阅读 346

手机端动感弹窗插件 hsycmsAlert.js

阅读 323

好站推荐:可以免费下载字体的网站导航-避免字体侵权全部免费商用

阅读 319

Three.js画布渲染器+CSS渐变背景,鼠标动态效果

293阅读

亿七Seven 发布于2020-08-28 29字

Three.js画布渲染,渐变背景色,鼠标动态变化效果,做个网站背景挺不错的



引入jQ:<script src="js/jquery-1.10.2.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r67/three.min.js"></script>
<div>
</div>

<style>
/* gradient fallbacks taken from csstricks.com */
body {
  background-color: red;
  
  /* SVG fallback for IE 9 (could be data URI, or could use filter) */
  background-image: url(fallback-gradient.svg);
  
  /* Safari 4, Chrome 1-9, iOS 3.2-4.3, Android 2.1-3.0 */
  background-image: -webkit-gradient(linear, left top, right top, from(red), to(#f06d06));
  
  /* Safari 5.1, iOS 5.0-6.1, Chrome 10-25, Android 4.0-4.3 */
  background-image: -webkit-linear-gradient(left, red, #f06d06);
  
  /* Firefox 3.6 - 15 */
  background-image: -moz-linear-gradient(left, red, #f06d06);
  
  /* Opera 11.1 - 12 */
  background-image: -o-linear-gradient(left, red, #f06d06);
  
  /* Opera 15+, Chrome 25+, IE 10+, Firefox 16+, Safari 6.1+, iOS 7+, Android 4.4+ */
  background-image: linear-gradient(to right, red, #f06d06);
  margin: 0px;
  overflow: hidden;
}
</style>

<script>
var mouseX = 0,
      mouseY = 0,
      windowHalfX = window.innerWidth / 2,
      windowHalfY = window.innerHeight / 2,
      SEPARATION = 200,
      AMOUNTX = 10,
      AMOUNTY = 10,
      camera,
      scene,
      renderer;
  
  init();
  animate();

    function init() {

      var container,
        separation = 100,
        amountX = 50,
        amountY = 50,
        particle;
    
    container = document.createElement( 'div' );
    document.body.appendChild( container );

    scene = new THREE.Scene();

    renderer = new THREE.CanvasRenderer({ alpha: true }); // gradient; this can be swapped for WebGLRenderer
    renderer.setSize( window.innerWidth, window.innerHeight );
    container.appendChild( renderer.domElement );
    
    camera = new THREE.PerspectiveCamera(
        75,
      window.innerWidth / window.innerHeight,
      1,
      10000
    );
    camera.position.z = 100;

        // particles
    var PI2 = Math.PI * 2;
    var material = new THREE.SpriteCanvasMaterial({
        color: 0xffffff,
        program: function ( context ) {
                context.beginPath();
        context.arc( 0, 0, 0.5, 0, PI2, true );
        context.fill();
      }
    });
    
    var geometry = new THREE.Geometry();

    for ( var i = 0; i < 100; i ++ ) {
      particle = new THREE.Sprite( material );
      particle.position.x = Math.random() * 2 - 1;
      particle.position.y = Math.random() * 2 - 1;
      particle.position.z = Math.random() * 2 - 1;
      particle.position.normalize();
      particle.position.multiplyScalar( Math.random() * 10 + 450 );
      particle.scale.x = particle.scale.y = 10;
      scene.add( particle );
      geometry.vertices.push( particle.position );
    }

    // lines
    var line = new THREE.Line( geometry, new THREE.LineBasicMaterial( { color: 0xffffff, opacity: 0.5 } ) );
    scene.add( line );

    // mousey
    document.addEventListener( 'mousemove', onDocumentMouseMove, false );
        document.addEventListener( 'touchstart', onDocumentTouchStart, false );
    document.addEventListener( 'touchmove', onDocumentTouchMove, false );
        
         window.addEventListener( 'resize', onWindowResize, false );

    } // end init();

    function onWindowResize() {

      windowHalfX = window.innerWidth / 2;
    windowHalfY = window.innerHeight / 2;

    camera.aspect = window.innerWidth / window.innerHeight;
    camera.updateProjectionMatrix();

    renderer.setSize( window.innerWidth, window.innerHeight );

    }

    function onDocumentMouseMove(event) {

      mouseX = event.clientX - windowHalfX;
    mouseY = event.clientY - windowHalfY;

  }

  function onDocumentTouchStart( event ) {

        if ( event.touches.length > 1 ) {

        event.preventDefault();

      mouseX = event.touches[ 0 ].pageX - windowHalfX;
      mouseY = event.touches[ 0 ].pageY - windowHalfY;

    }
    }

  function onDocumentTouchMove( event ) {

      if ( event.touches.length == 1 ) {

        event.preventDefault();

      mouseX = event.touches[ 0 ].pageX - windowHalfX;
      mouseY = event.touches[ 0 ].pageY - windowHalfY;

        }
    }

    function animate() {
    
        requestAnimationFrame( animate );
    render();
    
    }

    function render() {
        
    camera.position.x += ( mouseX - camera.position.x ) * .05;
    camera.position.y += ( - mouseY + 200 - camera.position.y ) * .05;
    camera.lookAt( scene.position );

    renderer.render( scene, camera );
  
  }
</script>
# 渐变 # css # 动态

2个赞
最后更新:2020 年 08 月 28 日 11:01:54

代码

查看全部
上一篇 分类目录 下一篇
分类 代码 的目录

CSS | 时间轴

此内容被密码保护

jQuery卡通火箭返回顶部代码

纯CSS静态弹窗层

手机端动感弹窗插件 hsycmsAlert.js

Three.js画布渲染器+CSS渐变背景,鼠标动态效果

3D动感效果樱花飘搜索引擎页面

js自定义过滤内容【实用】

16个悬停动画的按钮

分享一个右下角展开与最小化反馈留言代码

文章部分内容来源于网络,仅供各位学习

如侵害到您的权益,请联系邮件 3108308908@qq.com 反馈,我们将尽快处理。

文章地址:https://blog.yqseven.cn/index.php/archives/26/

取消回复

打开涂鸦
0

我好了,开始夸吧`

user

亿七Seven

自由,并不是放纵
  • 26 文章
  • 8 评论
  • 6.61K 浏览

热门文章

1-seven一款白里有点蓝的typecho主题

500阅读 发布于2020-08-07

HTML | 仿南博APP小圈子UI

488阅读 发布于2021-11-29

在线渐变色自定义调节的源码

460阅读 发布于2020-08-06

纯CSS静态弹窗层

352阅读 发布于2020-09-25

多用途html5商业业务着陆页模板

346阅读 发布于2020-09-10

手机端动感弹窗插件 hsycmsAlert.js

323阅读 发布于2020-09-07

好站推荐:可以免费下载字体的网站导航-避免字体侵权全部免费商用

319阅读 发布于2020-09-13

文章标签

css js 渐变 typecho主题 html代码 模板 源码 自适应 1-seven 留言 个人作品 free 动画 按钮 自定义 JavaScript 3D 搜索引擎 动态 弹窗
© 2022 亿七seven - 乐于折腾面对秃头.