AlloyTeam

AlloyTeam

Copyright © Tencent AlloyTeam. All Rights Reserved.
AlloyTeam 腾讯全端 AlloyTeam 团队 Blog
  • 首页
  • Web 开发
    • 前端资讯
    • HTML5
    • CSS3
    • JavaScript
    • Node.js
    • 移动 Web 开发
    • 用户体验设计
    • Web 前端优化
    • 资源工具
  • 移动开发
    • Android 开发
    • iOS 开发
    • 移动 Web 开发
  • Alloy 实验室
    • 作品
    • HTML5 游戏
  • 关于
    • 团队
    • Github
    • 留言
    • 友情链接
  • RSS
  • JS、CSS 以及 img 对 DOMContentLoaded 事件的影响
    In Web 前端优化,Web开发 on 2014年03月03日 by TAT.kerry95 view: 27,970
    14

    最近在做性能有关的数据上报,发现了两个非常有意思的东西:Chrome 开发者工具的 Timeline 分析面板,以及 DOMContentLoaded 事件。一个是强大的令人发指的性能分析工具,一个是重要的性能指标,于是就用 Timeline 对 DOMContentLoaded 事件进行了一番研究。

    继续阅读

  • 停不下来的前端,自动化流程
    In JavaScript,Web开发,资源工具 on 2014年03月01日 by TAT.yuanyan view: 39,049
    18

     

    2014-03-04_171121

    流程

    关于流程,是从项目启动到发布的过程。在前端通常我们都做些什么?

    继续阅读

  • 用 d3.js 实现基于 SVG 的柱状图
    In Web开发 on 2014年02月28日 by TAT.云中飞扬 view: 13,323
    5

    之前用 6 步实现了基于 SVG 的折线图,这一篇文章将回到比折线图更基本的图表——柱状图。

    本篇直接从创建 SVG 讲起,引入 d3 等简单的准备工作参见用 d3.js 实现基于 SVG 的线形图。

    step1:模拟数据

    1
    2
    3
    4
    5
    // 模拟100条0-100的随机数,作为柱状图的高度
    var data = Array.apply(0, Array(100)).map(function() {
      return Math.random() * 100;
    });
    <!--more-->

    step2:创建 SVG 容器

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var margin = {top: 20, right: 20, bottom: 30, left: 50},
        width = document.body.clientWidth - margin.left - margin.right,
        height = 500 - margin.top - margin.bottom;
     
    var chart = d3.select('body')
      .append('svg')
      .attr('width', width + margin.left + margin.right)
      .attr('height', height + margin.top + margin.bottom)
      .append('g')
      .attr('transform', 'translate(' + margin.left + ', ' + margin.top + ')');

    这里的代码就不解释了,前一篇文章已经详细说明。chart 就是最终建立的容器,下面就往容器里面放元素。

    step3:画柱状图

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    // 计算每根柱状物体的宽度
    var barWidth = width / data.length;
    // 用g作每根柱状物体的容器,意义可类比div
    // 前一篇文章已经介绍过selectAll的意义,即生成占位符,等待填充svg图形
    var bar = chart.selectAll('g')
      .data(data)
      .enter()
      .append('g')
      // 接收一个数据填充一个g元素
      // 同时为g设置位置
      .attr('transform', function(d, i) {
        return 'translate(' + i * barWidth + ', 0)';
      });
     
    bar.append('rect')
      // 添加一个矩形
      .attr('y', function(d) {
        return height - d;
      })
      .attr('height', function(d) {
        return d;
      })
      .attr('width', barWidth - 1);

    前文提到 svg 的元素定位都是基于整个 svg 容器左上角作为原点,但并不能使用 position: absolute 等方法定位,此处的 g 元素通过位移来定位 x 坐标,即 transform: translate(x, 0)。

    这里的 bar 可类比 jQuery 对象,是一个类数组对象,bar 调用的方法都会对 bar 里面每个对象进行调用。代码中每一次调用都插入一个矩形,同时设置 y 坐标、高度和宽度,x 坐标跟父容器(g)保持一致即可。这里需要注意 y 坐标往下为正,为了让所有矩形的下边处于同一高度,这里设置每个矩形的 y 坐标为容器高度减去矩形高度。为了用一像素区分开每个矩形,这里设置矩形宽度为父容器的宽度减 1。

    通过以上 js 代码再稍微设置一点 css

    1
    2
    3
    rect {
      fill: #2177BB;
    }

    即可看到一张最简单的柱状图了。

    20140228002600

     

    step4:添加坐标轴

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    var y = d3.scale.linear()
      .domain([0, d3.max(data)])
      .range([height, 0]);
    var xAxis = d3.svg.axis()
      .scale(x)
      .orient('bottom')
      .ticks(1);
    var yAxis = d3.svg.axis()
      .scale(y)
      .orient('left');
    // 添加x坐标轴
    chart.append('g')
      .attr('class', 'x axis')
      .attr('transform', 'translate(0,' + height + ')')
      .call(xAxis);
    // 添加y坐标轴
    chart.append('g')
      .attr('class', 'y axis')
      .call(yAxis);

    完整的柱状图就是这样了
    20140228235631

     

    完整的代码请移步 jsFiddle

    由于篇幅关系,本篇文章就暂时只介绍最基本的柱状图是怎么完成的,后续会更新动态柱状图以及为柱状图添加交互系效果的实现方法,敬请期待!

    继续阅读

  • TAT.dorsywang grunt 快速学习小记
    In Web开发 on 2014年02月27日 by TAT.dorsywang view: 11,798
    5

    快速过了一下 grunt,做个小记与总结。

    grunt 是什么?

    知道的人就会觉得这里有点罗嗦,但还是快速了解一下。grunt 是一个构建平台。

     

    grunt 可以做什么?

    在开发阶段和发布阶段有一些自动重复的过程还是要做的

    继续阅读

  • TAT.Minren JX.Animate 基于 HTML5&CSS3 的 JavaScript 并行动画库
    In CSS3,HTML5,Web开发 on 2014年02月27日 by TAT.Minren view: 16,474
    3

    JX20140226181130

    What’s JX.Animate

    JX.Animate 是由腾讯前端团队 AlloyTeam 推出的一个 JavaScript 的 CSS3 动画库,通过 JX 插件的形式提供。
    • JX.Animate 官网:http://alloyteam.github.io/JXAnimate/
    JX.Animate 可以帮助开发者在 JavaScript 代码中方便调用和控制 CSS3 动画,例如动画时长、重复次数、动画缓冲、结束回调等,并且支持播放声音。

    继续阅读

  • TAT.bizai AlloyStick——专为 HTML5 开发的开源骨骼动画引擎
    In HTML5,HTML5游戏,Web开发 on 2014年02月21日 by TAT.bizai view: 27,501
    14

    allotstick_head2

    What's AlloyStick

    AlloyStick 是一款专为 HTML5 开发的 2D 骨骼动画引擎。可以用于 HTML5 动画开发、HTML5 游戏开发。AlloyStick 主要由骨骼动画引擎和骨骼动画编辑器两部分组成。骨骼动画编辑器提供强大的骨骼动画编辑功能,拖拽骨骼组合角色,通过设置动画关键帧,输出动画数据。js 动画库根据输出数据,依靠强大的自动补间和骨骼关系,就可以制作出逼真、生动的 Canvas 骨骼动画,可以畅快的运行在 PC、手机、平板等设备里。

    继续阅读

  • TAT.bizai 视差滚动的爱情故事之优化篇
    In JavaScript,Web开发 on 2014年02月14日 by TAT.bizai view: 31,832
    28

    上篇博客链接:视差滚动的爱情故事

    大家好,想起以前有家伙想给我起个花名,叫伟哥。这种跟人类生殖器官有关系的花名,怎么能让它伴随我英明的一生呢!看我不抽死那。。。。。哦,不对,看我不说服那个家伙改口,最后他在我 185 魁梧的身材,俊朗的五官的威严下改口了,只不过那天手掌略疼略疼而已。上一篇博客知道,我的女神居然有男朋友了,很明显这是上天给予我的挑战,然后故事就会像狗血韩剧那样发展,我成为了男二号,女神女主角因为得了癌症,男一号假以远赴外国寻医实则东莞被捕,就这样在女神身边消失了,而身为男二号的我会不离不弃地守护这女神,终于女神在我的爱情滋润下战胜病魔,重获新生,男二号和女神走在一起,哈哈哈哈哈哈啊啊啊哈哈,故事一定是这样。什么?你说韩剧后面还有男一号回来跟女神重拾旧爱的剧情?韩剧一般看到这里我就不看的。

    。。。。。。好吧我承认,我没有成为什么男二号,而是成为一名(diao si)备胎

    继续阅读

  • TAT.Johnny Browser-Sync:响应式 Web 开发调试利器
    In 移动 Web 开发,资源工具 on 2014年02月14日 by TAT.Johnny view: 27,229
    8

    QQ截图20140214151148

    快速的移动 Web 开发模式,是我们团队一直在探索的一项内容。今天给大家介绍一种高效的开发方式,在开始内容前,我们先了解与分析一下目前主流开发模式的现状(本文聚焦响应式 Web 开发,这里主要指页面重构的工作)。

    继续阅读

  • TAT.Kinvix 腾讯移动 Web 整体解决方案 – Spirit
    In 作品,移动 Web 开发,资源工具 on 2014年02月10日 by TAT.Kinvix view: 45,526
    30

    移动 Web 开发是一块新的领域,给 Web 带来更多机会的同时,也带来了更多的挑战。为了让开发者在移动 Web 的道路上走得更加顺畅,开发更加高效,Spirit(勇气号)由此而生。

    Spirit 官网:http://alloyteam.github.io/Spirit/

     QQ20140210113520

    继续阅读

  • TAT.Minren 响应式设计
    In CSS3,HTML5,Web开发,移动 Web 开发 on 2014年01月23日 by TAT.Minren view: 34,012
    10

    网上的教程好复杂,我写一个简版的。

    简单说呢就针对不同的屏幕分辨率应用不同的 CSS 样式。比如在电脑、Pad 设备上,屏幕比较宽,就可以一行放 2 个 Div。
    到了手机上,或者 Pad 竖着拿的的时候,一行就只放 1 个 Div。
    这里有 2 个关键点:
    一是如何在不修改 Dom 结构的前提下调整布局。
    二是如何判断屏幕分辨率并应用对应的 CSS。
    以上两点都应该不依赖与 JS。

    继续阅读

上页 1 ...36 37 38 39 40 41 42 43 44 45 ...61 下页
公众号:AlloyTeam
扫码关注
公众号:AlloyTeam
合作伙伴
HTML5梦工场
腾讯云
Coding
兄弟团队
  • 腾讯 ISUX
  • 腾讯 CDC
  • 腾讯游戏 TGideas
  • 百度前端 EFE
  • 百度前端 FEX
  • 淘宝前端团队 FED
友情链接
  • 印记中文
  • W3CTech
  • 前端观察
  • W3C Plus
  • Web 前端开发
  • V2EX
  • 蓝色理想
  • 云开发 CloudBase
  • HTML5中文学习网
  • 爱思资源网
  • 牛大拿_前端设计导航
  • 吕小鸣前端博客
  • 腾讯大学


Copyright ©  2011-2025 AlloyTeam. All Rights Reserved. Powered By WordPress
粤ICP备15071938号-2