javascript视差的简单介绍
javascript(jq)实现的水平视差滚动效果
水平垂直的原理是一样的,它这个主要是增加了鼠标滚轮事件,其他的没啥特别。
雁塔网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。创新互联公司自2013年创立以来到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。
!doctype html
html
head
meta charset="utf-8" /
title视差滚动/title
style
*{margin: 0;padding: 0;}
body{ }
#bg{width: 100%;background-image: url(trim.jpg);background-size: cover;height: 768px;position: fixed;}
#img1{position: fixed;top: 650px;border: 1px solid #aaa;padding: 4px;background-color: #fff;}
#img2{position: fixed;top: -500px;right: 0px;width: 600px;height: 300px;border: 1px solid #aaa;padding: 4px;background-color: #fff;}
#txt1{top: 400px; position: fixed;font-family: '黑体';font-size: 36px;color: #fff;font-weight: bold;text-shadow: 2px 2px 12px #fff;left: -400px;}
/style
script src="jquery-1.11.1.min.js"/script
/head
body
div id="bg"/div
img id="img1" src="thumb.jpg"
img id="img2" src="535032.jpg"
div id="txt1"纳米尖兵巴德尔/div
div style="height:3000px;"/div
script
window.onscroll=function(){
var ht=document.documentElement.scrollTop || document.body.scrollTop;
$("#bg").css({"background-position":'0px -'+ht/20+'px'});
$("#img1").css({"top":650-ht/2+'px'});
$("#img2").css({"top":-500+ht/2+'px'});
$("#txt1").css({"left":-300+ht/2+'px','opacity':500/ht});
}
/script
/body
/html
这个网页特效是怎么实现的,是javascript写出来的么?能用javascript写出来么?
对元素滚动的次数进行计数:
$("div").scroll(function() {
$("span").text(x+=1);
});
当用户滚动指定的元素时,会发生 scroll 事件。
scroll 事件适用于所有可滚动的元素和 window 对象(浏览器窗口)。
scroll() 函数触发 scroll 事件。或者如果设置了 function 函数,则规定当发生 scroll
事件时执行的代码。
这是w3c的原版教程。jquery肯定有鼠标滚动事件一层来,你先试着用滚动事件给每个大div做个简单动画,然后再想着做复杂的,其实这个效果就是利用滚动事件让大的DIV移动,然后以DIV对应浏览器的位置播放动画。
CSS滚动视差
何为滚动视差
视差滚动(Parallax Scrolling)是指让多层背景以不同的速度移动,形成立体的运动效果,带来非常出色的视觉体验。 作为网页设计的热点趋势,越来越多的网站应用了这项技术。
通常而言,滚动视差在前端需要辅助 Javascript 才能实现。但是使用background-attachment也可以做到这样的效果。
要了解background-attachment的作用可以参考我的另一篇关于它的简单介绍:
什么是background-attachment
使用background-attachment: fixed实现滚动视差
首先,我们使用background-attachment: fixed来实现滚动视差。fixed 此关键字表示背景相对于视口固定。即使一个元素拥有滚动机制,背景也不会随着元素的内容滚动。
这里的关键在于,即使一个元素拥有滚动机制,背景也不会随着元素的内容滚动。也就是说, 背景图从一开始就已经被固定死在初始所在的位置。
我们使用,图文混合排布的方式,实现滚动视差,HTML 结构如下, .g-word表示内容结构,.g-img表示背景图片结构 :
关键 CSS:
效果如下:
嗯?有点神奇,为什么会是这样呢?可能很多人会和我一样,第一次接触这个属性对这样的效果感到懵逼。
我们把上面background-attachment: fixed注释掉,或者改为background-attachment: local,再看看效果:
这次,图片正常跟随滚动条滚动了,按常理,这种效果才符合我们大脑的思维。
而滚动视差效果,正是不按常理出牌的一个效果,重点来了:
当页面滚动到图片应该出现的位置,被设置了background-attachment: fixed的图片并不会继续跟随页面的滚动而跟随上下移动,而是相对于视口固定死了。
好,我们再来试一下, 如果把所有.g-word内容区块都去掉 ,只剩下全部设置了background-attachment: fixed的背景图区块,会是怎么样呢?
效果如下:
结合这张 GIF,相信能对background-attachment: fixed有个更深刻的认识,移动的只有视口,而背景图是一直固定死的。
综上,就是 CSS 使用background-attachment: fixed实现滚动视差的一种方式,也是相对而言比较容易的一种。
参考文章: 滚动视差?CSS 不在话下
如何用 fullPage.js 创建全屏视差滚动单页
this.stage.displayState=StageDisplayState.NORMAL; 最直接的就是把你那个全屏代码删除。。。
有关滚动视差网页的问题
关于视差滚动的剖析:
解剖视差滚动(上集)
解剖视差滚动(下集)【附加qq浏览器页面轻解析】
更多页面鉴赏
Apple - Mac Pro
QQ浏览器 for MAC 官方网站
Mac迅雷官网
新闻标题:javascript视差的简单介绍
浏览路径:http://myzitong.com/article/dsdesss.html