建站技术
顺应时代发展趋势,运用新html5响应式开发技发,打造视觉盛宴
公司新闻
SEO优化
建站技术
常州HTML5网站:HTML5的实用之美
更新时间:2019-01-21 点击:1799

 HTML5的Web Worker、Web Socket、Web Storage等新API让很多后台的工作可以放到前端来处理,Web Worker解决Javascript单线程和阻塞的问题,相当于提供了分布式处理的框架;Web Socket提供了全双工的长连接通信, 利用它,我们可以实现微博消息推送、新邮件推送、实时游戏和聊天,减少了不必要的数据传输,提高了信息的实时性;Web Storage相当于前端的Memcached和数据库。

  而HTML5的Canvas是最强大的API之一,可以动态生成图形、图像和动画,在HTML5游戏中使用的非常普遍。在下面的例子中,我将展示HTML5 Canvas之美:实现图像颜色渐变效果。

  以前,我们在网站上显示灰度图像到彩色图像的渐变动画有两种实现方式:1、基于IE滤镜的方案,缺点是无法实现浏览器兼容;2、手动创建彩色图像的灰度版本。现在,利用HTML5的Canvas画布,我们可以高效简单的实现此动画效果。

核心的Javascript代码如下:

// 加载时就进行处理
$(window).load(function(){
var img = $('#color-img');
// 复制图像
img.clone().addClass('gray-img').css({'position': 'absolute', 'z-index': '2', 'opacity': '0'}).insertBefore(img);
img.attr('src', grayscale(img.attr('src')));
// 图像的淡入
$('#color-img').mouseover(function(){
$(this).stop().animate({opacity: 1}, 1000);
})
// 图像的淡出
$('.gray-img').mouseout(function(){
$(this).stop().animate({opacity: 0}, 1000);
});
});
// 创建灰度版的图像
function grayscale(src) {
// 取得canvas元素及其绘图上下文
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var imgObj = new Image();
imgObj.src = src;
canvas.width = imgObj.width;
canvas.height = imgObj.height;
ctx.drawImage(imgObj, 0, 0); // 绘制一副图像
var imgPixels = ctx.getImageData(0, 0, canvas.width, canvas.height); // 获取之前的数据
for(var x = 0; x < imgPixels.height; x++){
for(var y = 0; y < imgPixels.width; y++){
var i = (x * 4) * imgPixels.width + y * 4;
var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3; // 计算灰度值
imgPixels.data[i] = avg; // rgb中的r
imgPixels.data[i + 1] = avg; // rgb中的g
imgPixels.data[i + 2] = avg; // rgb中的b
// i + 3是alpha通道,我们现在不需要
}
}
ctx.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height);
return canvas.toDataURL();
}

  针对不支持的旧浏览器,我们可以使用Modernizr Javascript库或者原生Javascript检测当前浏览器是否支持,并提供替代性的解决方案:

if(!Modernizr.canvas) { // 或者使用!document.createElement('canvas').getContext
$(document).ready(backupFunc);
}


欢迎访问更多网站推广,网络营销,网站优化,SEO相关内容



联系我们
共同探寻网络核心价值让网络更精彩
公司地址:
常州市新北区典雅商业广场2号楼501、502、525、526
来电咨询:
座机:0519-69881866
手机:13775225976(微信同号)
网络咨询:
QQ:1163029111
邮箱:1163029111@qq.com
获取2023年互联网营销方案
已成功帮助200家知名企业完成互联网营销转型
 
常州网站建设 | 
苏州网站建设 | 
无锡网站建设 | 
上海网站建设 | 
镇江网站建设 | 
泰州网站建设 | 
扬州网站建设 | 
淮安网站建设 | 
连云港网站建设 | 
徐州网站建设 | 
宿迁网站建设 | 
盐城网站建设 | 
杭州网站建设 | 
绍兴网站建设 | 
温州网站建设 | 
嘉兴网站建设 | 
本溪网站建设 | 
宁波网站建设 | 
蚌埠网站建设 | 
湖州网站建设 | 
版权所有:新北区三井微云网络技术服务部 备案号:苏ICP备2023018476号 苏公网安备32040002010306号