• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > 腾讯问卷 http://ur.qq.com/ 是如何实现导航栏毛玻璃背景效果的?

腾讯问卷 http://ur.qq.com/ 是如何实现导航栏毛玻璃背景效果的?

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含http,com,canvas,StackBlurForCanv,html等相关知识,匿名希望在学习及工作中可以帮助到您
腾讯问卷 http://ur.qq.com/ 看上去似乎通过以下方式实现了导航栏毛玻璃背景效果:
  • html2canvas - http://html2canvas.hertzen.com/
  • StackBlur - http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html
  • HTML 5 Canvas
但是自己在本地试了试发现弄不出完美的效果,不知道具体是怎么实现的。
另外参见 http://fsasso.com/labs/blur/ 居然也很容易地实现了 CSS 3 + HTML 5 丝般顺滑的导航栏毛玻璃背景效果。

截图:

回复内容:

canvas截了一张大图,滤镜处理(毛玻璃化),放在了header容器后面,尺寸与header容器一致,且header容器设置半透,漏出后面的截图。
该canvas元素垂直坐标与浏览器滚动同步,保证漏出的区域是页面的背景。
原理很简单,有些效果细节花了点心思调节。

1.截图的时候,header先隐藏,否则最顶部的效果出不来。
2.当浏览器resize的时候,需要重新截图。这里处理暴力了点,直接删掉滤镜层,避免重复截图的性能消耗。感兴趣的,可以做一下函数节流来提升resize时候重新截图的性能。
3.根据最近WWDC,safari支持原生毛玻璃效果。http://caniuse.com/#search=backdrop-filter。

话说我们改域名了,http://wj.qq.com/ 实现这个毛玻璃的效果需要用到的库和方法楼主基本都提到了。
具体实现过程可以参考 @黎博 的答案
补充一些实现过程中的细节
  1. html2canvas效率很低,如果页面中的dom较多,渲染时间可达300ms+,所以实时渲染是做不到的。所以只能在初始化的时候截一个长图,然后通过移动图片的位置来实现。
  2. resize的时候要放弃之前的图,是因为很多元素的排版在重绘的时候的相对位置会发生改变,因此原先的图可能无法复用。(可以在lz举得这个例子Blur!中尝试resize下就能看到副作用)
  3. html2canvas是根据dom树和css样式绘制canvas的,所以如果有动画或者存在样式变化的元素要做特殊处理
  4. 没有达到完美效果可能是楼主忽略了一个半透明的遮罩层,毛玻璃的效果只有模糊还是不够的
  5. ls说提前截图的方案在一定程度上也是可行的,但是考虑到第二个因素以及维护成本(比如换了背景图,样式修改什么的就要记得重新截一次图)可能就不是特别合适
用了HTML5标准的rgba色,alpha通道值是0.8

下边缘阴影

————————————————————————
你是说这个阴影么,这就是box-shadow啊,我都给你截图了... Opera30.0下测试,窗体resize之后,毛玻璃效果丢失。 楼上分析的做法是对的
这个模糊效果不是实时的,将按钮换个颜色就发现了。而且你看,他们的轮播图连背景也没换,其实也不需要渲染页面后截图,整张网页的图是早就截好的。

至于下面那个网址...

这么一段代码不就已经说明一切了么。 filter: blur(20px)

您可能想查找下面的文章:

  • html5中的meta标签的三要素是什么?meta标签的使用总结
  • HTML5-XMLHttpRequest Level 2概述详解
  • 如何看待B站 (bilibili) 开源 HTML5 播放器内核 flv.js?
  • 有哪些使用 HTML5 技术开发的、基于移动平台的网页游戏站点?
  • Web 端如何调用手机的相册和照相机?
  • 为什么有些网站在用鼠标拖动选取文字或其他内容的时候,背景色不是默认的颜色?如何进行自定义?
  • 百度小说推出专为平板电脑设计的 HTML5 web 应用,体验效果和原生应用类似,是否意味着随着 HTML5 技术的成熟,原生应用未来将输给 web app?
  • 怎么爬取twitter某个用户的所有tweets?
  • 腾讯为什么要做网页版微信?
  • 为什么制定html5标准的网站奇丑无比?

相关文章

  • 2018-12-03Web前端面试题面试技巧有哪些?
  • 2018-12-03HTML5新增加的标签和表单新增属性的代码实例
  • 2018-12-03HTML5移动开发图片压缩上传功能的代码实例
  • 2018-12-03HTML5+NodeJs实现WebSocket即时通讯的示例代码分享
  • 2018-12-03通过HTML5移动开发实现图片压缩上传的功能
  • 2018-12-03H5的语义化标签新特性应该如何使用
  • 2018-12-03html5实现多文件的上传示例代码_html5教程技巧
  • 2018-12-03如何评价html5规范正式定稿对互联网以及电子商务的影响?
  • 2018-12-03HTML5实战与剖析之CSS选择器——querySelectorAll()
  • 2018-12-03H5的本地存储之IndexedDB

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • HTML5上传视频无法播放以及兼容的解决方法(图)
    • 通过Canvas及File API缩放并上传图片完整示例
    • HTML5新特性之WebSocket
    • 7款HTML5精美应用教程 让你立即爱上HTML5
    • H5+Canvas使用案例详解
    • jQuery中如何实现toggle方法
    • 基于第一个PhoneGap(cordova)的应用详解 _html5教程技巧
    • 详细介绍AngularJS中使用HTML5摄像头拍照的图文详情
    • SVG基础|绘制SVG文字
    • HTML5的本地存储IndexedDB

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有