css的一些小技巧!页面视觉差!
相当长的一段时间,现在网站与所谓的“视差”效果一直很受欢迎。 万一你没有听说过这种效果,不同的图像,在不同的方向移动或层主要包括。这导致了一个很好的光学效应,使参观者的注意。
在网页设计中,为了实现这是简单的一个网站添加一个jQuery插件的最常见的方式。这样做,不幸的是,有几个缺点。这些插件是将事件处理程序附加到滚动事件的窗口目标这导致了事件处理通过JavaScript吨(处理滚动事件可以很容易造成性能问题,应仔细考虑)。将上述层,图像背景的位置获得计算和设置为不同的元素,然后另外的原因很多DOM操作。
总之:视差用JavaScript可以减少一个网站的滚动性能很快。
background-attachment: fixed
什么只有很少人会知道,这种影响可以通过CSS,太。看看下面的例子:
See the Pen Parallax with background-attachment : fixed by Stefan Judis (@stefanjudis) on CodePen.
得到这个视差效果,背景图像被放置在不同的元素。这些元素需要另外定义background-attachment: fixed。通过定义background-attachment和任何背景图像的定位是可以改变的。
属性的初始值scroll基本上,这意味着图像的位置是固定的元素。没有任何花哨,而我们都知道这样的行为。在一个网站和元素用户滚动向上和向下等动做背景图像。
它变得有趣的设置background-attachment:fixed。 fixed的定义了背景图像的位置是不固定的依赖元素而固定到视口。这意味着图像会在视觉上相同的位置,无论怎么滚动会做。这导致了很好的视觉视差效应。
让我们在实际的实现快速检查:
<!-- Four containers for setting the background images -->
<div class="parallax">
<div class="bg__foo">foo</div>
<div class="bg__bar">bar</div>
<div class="bg__baz">baz</div>
<div class="bg__bazz">bazz</div>
</div> // setting base styles to image containers
[class*="bg__"] {
height: 50vh; text-indent: -9999px; /* fix background */
background-attachment: fixed; /* center it */
background-position: center center; /* Scale it nicely to the element */
background-size: cover; /* just make it look a bit better ;) */
&:nth-child(2n) {
box-shadow: inset 0 0 1em #111;
}
} .bg__foo {
background-image: url(
https://s3-us-west-2.amazonaws.com/s.cdpn.io/30354/parallax1.jpg
);
} .bg__bar {
background-image: url(
https://s3-us-west-2.amazonaws.com/s.cdpn.io/30354/parallax2.jpg
);
} .bg__baz {
background-image: url(
https://s3-us-west-2.amazonaws.com/s.cdpn.io/30354/parallax3.jpg
);
} .bg__bazz {
height: 100vh; background-image: url(
https://s3-us-west-2.amazonaws.com/s.cdpn.io/30354/parallax1.jpg
);
}
几乎全球兼容性。它已经在IE9和Android 2.1支持。
总结
我个人比较喜欢CSS解决JavaScript解决方案和这是我的偏好一个完美的例子。有没有逻辑,没有额外的DOM操作的需要,这使得整个解决方案,很好。但还是有一件事要记住当处理视差效应。
即使这个CSS的解决方案有很多事情要做。 background-attachment: fixed将导致更多的画,需要通过浏览器完成,这可能会影响性能和可能降低你的FPS滚动(记得60fps的目标吗?)。所以保持一个眼睛的FPS计在Chrome做这些事情时,总是一个好主意。
css的一些小技巧!页面视觉差!的更多相关文章
- 原生JS和JQuery代码编写窗口捕捉函数和页面视觉差效果(scroll()、offsetTop、滚动监听的妙用)
想实现窗口滚动到一定位置时,部分网页的页面发生一些变化,但是手头没有合适的插件,所以就想到自己编写一个简易的方法, 想到这个方法要有很高的自由度和适应性,在这,就尽量的削减其功能,若有错误的地方或者更 ...
- css的一些小技巧。修改input样式
在第一次正式写项目的时候,遇到了几个布局的小技巧.记录一下. 我们常常会遇到图片和文字对齐的一种样式.比如 这样的样式,我们写的时候有时候会出现不对齐的情况.我们有俩种方法 一种就是flex的布局,还 ...
- 关于html/css的一些小技巧之hack掉"margin-top"层叠问题
身为小前端菜鸟一枚,忽然听到这样一则传言~~ 心情久久不能平复,想到前几日,开通了博客君,特来此寻找存在feeling~ 旨在造福普罗大众(更多前端小菜鸟) 话不多说, 我们步入正题,今天来给大家分享 ...
- 从零开始学习html(十五)css样式设置小技巧——下
六.垂直居中-父元素高度确定的单行文本 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8&quo ...
- CSS的一些小技巧
1.黑白图像img.desaturate { filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: graysc ...
- css浮动布局小技巧
父元素如何围住浮动的子元素的三种办法: 一.为父元素应用overflow:hidden. overflow真正用途是防止包含元素被大的内容撑开,设定了宽度之后,包含元素将超过容器的内容减掉:而它还有另 ...
- CSS样式设置小技巧
1.水平居中设置 行内元素居中设置:如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的.代码示例如下: HTML代码 <body&g ...
- HTML+CSS学习笔记 (15) - css样式设置小技巧
水平居中设置-行内元素 我们在实际工作中常会遇到需要设置水平居中场景,今天我们就来看看怎么设置水平居中的. 如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:c ...
- HTML+CSS笔记 CSS中级 一些小技巧
水平居中 行内元素的水平居中 </a></li> <li><a href="#">2</a></li> &l ...
随机推荐
- 8.HBase In Action 第一章-HBase简介(1.2.2 捕获增量数据)
Data often trickles in and is added to an existing data store for further usage, such as analytics, ...
- 大型网站系统架构实践(五)深入探讨web应用高可用方案
从上篇文章到这篇文章,中间用了一段时间准备,主要是想把东西讲透,同时希望大家给与一些批评和建议,这样我才能有所进步,也希望喜欢我文章的朋友,给个赞,这样我才能更有激情,呵呵. 由于本篇要写的内容有点多 ...
- SequoiaDB 系列之一 :SequoiaDB的安装、部署
在分析或者参与一个开源项目之前,了解项目构建的目的是有必要的. 既然SequoiaDB是NoSQL数据库产品,则必然存在于传统关系型数据库相同的功能点:数据的增.删.改和查询(CRUD). 先了解怎么 ...
- 16.C#初见Lambda表达式及表达式树(九章9.1-9.3)
在说明Lambda相关知识前,我们需要了解Lambda表达式常用于LINQ,那么我们来聊下LINQ. LINQ的基本功能就是创建操作管道,以及这些操作需要的任何状态.这些操作表示了各种关于数据的逻辑: ...
- 编写高质量代码改善C#程序的157个建议[勿选List<T>做基类、迭代器是只读的、慎用集合可写属性]
前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议23.避免将List<T>作为自定义集合类的基 ...
- JavaScript基础---语言基础(2)
运算符 1.一元运算符 2.算术运算符 3.关系运算符 4.逻辑运算符 5.*位运算符 6.赋值运算符 7.其他运算符 8.运算符优先级 ECMA-262描述了一组用于操作数据值的运算符,包括一元运算 ...
- UItableView的编辑--删除移动cell
// // RootViewController.m // UI__TableView的编辑 // // Created by dllo on 16/3/17. // Copyright © 2016 ...
- (转)Java并发编程:volatile关键字解析
转:http://www.cnblogs.com/dolphin0520/p/3920373.html Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或 ...
- ztree设置节点checked
1.根据id获取树的某个节点: var zTree = $.fn.zTree.getZTreeObj("mytree"); var node = zTree.getNodeByPa ...
- CSS中font-style的斜体属性Italic oblique的区别
要搞清楚这个问题,首先要明白字体是怎么回事.一种字体有粗体.斜体.下划线.删除线等诸多属性.但是并不是所有字体都做了这些,一些不常用的字体,或许就只有个正常体,如果你用Italic,就没有效果了~这时 ...