jQuery全屏窗口位置确定js代码

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

以下是 jQuery全屏窗口位置确定js代码 的示例演示效果:

当前平台(PC电脑)
  • 平台:

部分效果截图:

jQuery全屏窗口位置确定js代码

HTML代码(index.html):

<!doctype html>
<html>
    <head>
        <title>jQueryȫ������λ��ȷ�����Windows</title>
        <script src="js/jquery-1.9.1.js"></script>
        <script src="js/jquery.windows.js"></script>
        <link rel="stylesheet" href="css/webfonts/ss-social/webfonts/ss-social.css"/>
        <link rel="stylesheet" href="css/webfonts/ss-pika/webfonts/ss-pika.css"/>
        <link rel="stylesheet" href="css/main.css">
    </head>
    <body>
        <!-- NOTE: each "window" is a section element with class .window -->
        <section id="0" class="window">
            <div class="content">
                    <i class="ss-icon">windows</i>
                    <h1>windows</h1>
                    <h2>a handy, loosely-coupled jQuery plugin for full-screen scrolling windows</h2>
            </div>
        </section>

        <section id="1" class="window">
            <div class="content">
                <h2>
                project root<br/>
                | -- css<br/>
                | -- | -- main.css (compiled)<br/>
                | -- js<br/>
                | -- | -- <span class="highlight">jquery.windows.js</span><br/>
                | -- scss<br/>
                | -- | -- <span class="highlight">main.scss</span><br/>
                | -- <span class="highlight">index.html</span>
                </h2>
            </div>
        </section>

        <section id="2" class="window">
            <div class="content">
                <h2>How it works</h2>
                <div class="explanation">This is a light bootstrap that sets up:
                    <ul>
                        <li>- the basic SASS for sequential full screen windows</li>
                        <li>- a jQuery plugin for managing their positions as the user scrolls</li>
                    </ul>
                    The plugin simply opens up a handy API for position management, provides callbacks, and will allow for window snapping.  No CSS is applied to the callee.
                </div>
            </div>
        </section>

        <section id="3" class="window">
            <pre>
                $('.window').windows({
                    snapping: true,
                    snapSpeed: 500,
                    snapInterval: 1100,
                    onScroll: function(scrollPos){
                        // scrollPos:Number
                    },
                    onSnapComplete: function($el){
                        // after window ($el) snaps into place
                    },
                    onWindowEnter: function($el){
                        // when new window ($el) enters viewport
                    }
                });
            </pre>
        </section>

        <section id="4" class="window">
            <div class="content">
                <h1>api</h1>
                <pre>
                    // returns ratio 0-1
                    $('.window:eq(0)').ratioVisible();

                    // returns boolean of whether or not is visible on screen
                    $('.window:eq(0)').isOnScreen();

                    // get most visible window
                    $('.window').getCurrentWindow();


                </pre>
            </div>
        </section>

        <section id="5" class="window">
            <div class="content">
                <a href="#" title="Download Me!" id="btn-wrap">
                    <span class="title">abc</span>
                </a>
            </div>
        </section>
        <script>
            $(document).ready(function(){
                var $windows = $('.window');
                $windows.windows({
                    snapping: true,
                    snapSpeed: 500,
                    snapInterval: 1100,
                    onScroll: function(s){},
                    onSnapComplete: function($el){},
                    onWindowEnter: function($el){}
                });
            });
        </script>
    </body>
</html>









JS代码(jquery.windows.js):

/*! * windows:a handy,loosely-coupled jQuery plugin for full-screen scrolling windows. * Version:0.0.1 * Original author:@nick-jonas * Website:http://www.workofjonas.com * Licensed under the MIT license */
;
	(function ( $,window,document,undefined ){
	var that = this,pluginName = 'windows',defaults ={
	snapping:true,snapSpeed:500,snapInterval:1100,onScroll:function(){
}
,onSnapComplete:function(){
}
,onWindowEnter:function(){
}
}
,options ={
}
,$w = $(window),s = 0,// scroll amount t = null,// timeout $windows = [];
	/** * Constructor * @param{
	jQuery Object}
element main jQuery object * @param{
	Object}
customOptions options to override defaults */
 function windows( element,customOptions ){
	this.element = element;
	options = options = $.extend({
}
,defaults,customOptions);
	this._defaults = defaults;
	this._name = pluginName;
	$windows.push(element);
	var isOnScreen = $(element).isOnScreen();
	$(element).data('onScreen',isOnScreen);
	if(isOnScreen) options.onWindowEnter($(element));
}
/** * Get ratio of element's visibility on screen * @return{
	Number}
ratio 0-1 */
 $.fn.ratioVisible = function(){
	var s = $w.scrollTop();
	if(!this.isOnScreen()) return 0;
	var curPos = this.offset();
	var curTop = curPos.top - s;
	var screenHeight = $w.height();
	var ratio = (curTop + screenHeight) / screenHeight;
	if(ratio > 1) ratio = 1 - (ratio - 1);
	return ratio;
}
;
	/** * Is section currently on screen? * @return{
	Boolean}
*/
 $.fn.isOnScreen = function(){
	var s = $w.scrollTop(),screenHeight = $w.height(),curPos = this.offset(),curTop = curPos.top - s;
	return (curTop >= screenHeight || curTop <= -screenHeight) ? false:true;
}
;
	/** * Get section that is mostly visible on screen * @return{
	jQuery el}
*/
 var _getCurrentWindow = $.fn.getCurrentWindow = function(){
	var maxPerc = 0,maxElem = $windows[0];
	$.each($windows,function(i){
	var perc = $(this).ratioVisible();
	if(Math.abs(perc) > Math.abs(maxPerc)){
	maxElem = $(this);
	maxPerc = perc;
}
}
);
	return $(maxElem);
}
;
	// PRIVATE API ---------------------------------------------------------- /** * Window scroll event handler * @return null */
 var _onScroll = function(){
	s = $w.scrollTop();
	_snapWindow();
	options.onScroll(s);
	// notify on new window entering $.each($windows,function(i){
	var $this = $(this),isOnScreen = $this.isOnScreen();
	if(isOnScreen){
	if(!$this.data('onScreen')) options.onWindowEnter($this);
}
$this.data('onScreen',isOnScreen);
}
);
}
;
	var _onResize = function(){
	_snapWindow();
}
;
	var _snapWindow = function(){
	// clear timeout if exists if(t){
	clearTimeout(t);
}
// check for when user has stopped scrolling,& do stuff if(options.snapping){
	t = setTimeout(function(){
	var $visibleWindow = _getCurrentWindow(),// visible window scrollTo = $visibleWindow.offset().top,// top of visible window completeCalled = false;
	// animate to top of visible window $('html:not(:animated),body:not(:animated)').animate({
	scrollTop:scrollTo}
,options.snapSpeed,function(){
	if(!completeCalled){
	if(t){
	clearTimeout(t);
}
t = null;
	completeCalled = true;
	options.onSnapComplete($visibleWindow);
}
}
);
}
,options.snapInterval);
}
}
;
	/** * A really lightweight plugin wrapper around the constructor,preventing against multiple instantiations * @param{
	Object}
options * @return{
	jQuery Object}
*/
 $.fn[pluginName] = function ( options ){
	$w.scroll(_onScroll);
	$w.resize(_onResize);
	return this.each(function(i){
	if (!$.data(this,'plugin_' + pluginName)){
	$.data(this,'plugin_' + pluginName,new windows( this,options ));
}
}
);
}
;
}
)( jQuery,window,document );
	

CSS代码(main.css):

@import url("http://hello.myfonts.net/count/25cb92");/* FONTS ---------------------------------------------------------- */
@font-face{font-family:'BrandonText-BoldItalic';src:url("webfonts/25CB92_0_0.eot");src:url("webfonts/25CB92_0_0.eot?#iefix") format("embedded-opentype"),url("webfonts/25CB92_0_0.woff") format("woff"),url("webfonts/25CB92_0_0.ttf") format("truetype");}
@font-face{font-family:'BrandonText-Bold';src:url("webfonts/25CB92_1_0.eot");src:url("webfonts/25CB92_1_0.eot?#iefix") format("embedded-opentype"),url("webfonts/25CB92_1_0.woff") format("woff"),url("webfonts/25CB92_1_0.ttf") format("truetype");}
@font-face{font-family:'BrandonText-Regular';src:url("webfonts/25CB92_2_0.eot");src:url("webfonts/25CB92_2_0.eot?#iefix") format("embedded-opentype"),url("webfonts/25CB92_2_0.woff") format("woff"),url("webfonts/25CB92_2_0.ttf") format("truetype");}
/* COLORS ---------------------------------------------------------- */
/* line 1,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
h1{font-family:BrandonText-Bold,Futura,Helvetica,Arial,sans-serif;font-size:6.0em;color:#1babb7;text-align:center;}
/* line 7,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
h2{font-family:BrandonText-Regular,Futura,Helvetica,Arial,sans-serif;font-size:1.4em;text-align:center;color:#333a3e;}
/* line 13,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
p{font-family:BrandonText-Regular,Futura,Helvetica,Arial,sans-serif;color:#333a3e;font-size:1.4em;}
/* line 18,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
pre{color:#d5d7dd;color:#bcbdc0;font-size:1.4em;line-height:1.6em;}
/* line 26,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(1) .content{position:absolute;top:50%;width:100%;margin-top:-170px;}
/* line 31,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(1) .content i{font-size:4.0em;width:100%;text-align:center;display:inline-block;color:#6ab29f;}
/* line 38,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(1) .content h1{margin:0;}
/* line 41,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(1) .content h2{padding:0 30px;}
/* line 49,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(2) .content{position:absolute;top:50%;left:50%;margin-top:-180px;margin-left:-160px;}
/* line 55,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(2) .content h2{color:#d5d7dd;text-align:left;}
/* line 58,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(2) .content h2 .highlight{color:white;}
/* line 67,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(3) ul{list-style-type:none;}
/* line 68,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(3) .content{position:absolute;top:50%;width:100%;margin-top:-230px;}
/* line 73,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(3) .content h2{text-align:center;font-size:3.0em;}
/* line 77,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(3) .content .explanation{font-family:BrandonText-Regular,Futura,Helvetica,Arial,sans-serif;color:#333a3e;font-size:1.4em;text-align:center;padding:0 15%;}
/* line 83,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(3) .content .explanation li{color:#d5d7dd;}
/* line 92,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(4) pre{position:absolute;top:50%;left:50%;margin:-220px 0 0 -450px;}
/* line 102,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(5) .content{position:absolute;top:50%;left:50%;margin:-350px 0 0 -450px;}
/* line 108,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(5) h1{color:#333a3e;}
/* line 111,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(5) pre{color:#333a3e;}
/* line 119,/Users/Jonas/Projects/repo/windows/scss/demo/_demo.scss */
.window:nth-child(6) .content{position:absolute;top:50%;left:50%;margin:-100px 0 0 -100px;text-align:center;}
/* CSS Document */
/* line 4,/Users/Jonas/Projects/repo/windows/scss/demo/_btn.scss */
::selection{background-color:#55595c;color:#fff;text-shadow:0 1px 0 #000;}
/* line 9,/Users/Jonas/Projects/repo/windows/scss/demo/_btn.scss */
::-moz-selection{background-color:#55595c;color:#fff;text-shadow:0 1px 0 #000;}
/* line 38,/Users/Jonas/Projects/repo/windows/scss/demo/_btn.scss */
#wrap{width:500px;margin:13% auto 0;}
/* line 49,/Users/Jonas/Projects/repo/windows/scss/demo/_btn.scss */
#btn-wrap{position:relative;padding:5px;margin:0 auto;width:230px;height:50px;display:block;text-decoration:none;margin-bottom:30px;background:#242428;background:-webkit-gradient(linear,0 bottom,0 top,from(#2d2d30),to(#17171a));background:-moz-linear-gradient(-90deg,#17171a,#2d2d30);-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px;-webkit-box-shadow:0 1px 0 #37373b;-moz-box-shadow:0 1px 0 #37373b;box-shadow:0 1px 0 #37373b;}
/* line 69,/Users/Jonas/Projects/repo/windows/scss/demo/_btn.scss */
span.title{color:#d6d6e7;font:15px/49px BrandonText-Bold,Futura,Helvetica,Arial,sans-serif;text-transform:uppercase;height:50px;width:230px;display:block;position:relative;-webkit-box-shadow:0 -1px 0 #8d8d94,0 1px 1px #0b0b0c;-moz-box-shadow:0 -1px 0 #8d8d94,0 1px 1px #0b0b0c;box-shadow:0 -1px 0 #8d8d94,0 1px 1px #0b0b0c;background:#52525c;background:-webkit-gradient(linear,0 bottom,0 top,from(#383840),to(#5a5a64));background:-moz-linear-gradient(-90deg,#5a5a64,#383840);-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px;z-index:5;-webkit-transition:width .2s ease-out;-moz-transition:width .2s ease-out;-o-transition:width .2s ease-out;text-align:center;}
/* line 93,/Users/Jonas/Projects/repo/windows/scss/demo/_btn.scss */
#btn-wrap:hover span.title{font-size:14px;width:135px;}
/* line 98,/Users/Jonas/Projects/repo/windows/scss/demo/_btn.scss */
#info{position:absolute;height:50px;width:230px;top:5px;right:4px;-webkit-box-shadow:0 -1px 0 #404042,0 1px 1px #0b0b0c;-moz-box-shadow:0 -1px 0 #404042,0 1px 1px #0b0b0c;box-shadow:0 -1px 0 #404042,0 1px 1px #0b0b0c;background:#2a2a2d;background:-webkit-gradient(linear,0 bottom,0 top,from(#212124),to(#2a2a2d));background:-moz-linear-gradient(-90deg,#2a2a2d,#212124);-webkit-border-radius:50px;-moz-border-radius:50px;border-radius:50px;z-index:4;}
/* line 116,/Users/Jonas/Projects/repo/windows/scss/demo/_btn.scss */
#info p{width:65px;margin:12px 17px 0 0;position:absolute;right:0;color:#7c7c84;font:11px/12px Helvetica,Arial,sans-serif;text-align:left;}
/* line 126,/Users/Jonas/Projects/repo/windows/scss/demo/_btn.scss */
.boxtuffs{color:#7c7c84;font:12px Helvetica,Arial,sans-serif;text-shadow:0 -1px 0 black;text-decoration:none;-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out;-o-transition:all .2s ease-out;}
/* line 136,/Users/Jonas/Projects/repo/windows/scss/demo/_btn.scss */
.boxtuffs:hover{color:#27896a;}
/* line 6,../scss/main.scss */
html,body{margin:0;padding:0;}
/* line 11,../scss/main.scss */
.window{width:100%;height:100%;position:absolute;}
/* line 18,../scss/main.scss */
.window:nth-child(1){background:#d5d7dd;top:0%;}
/* line 18,../scss/main.scss */
.window:nth-child(2){background:#1babb7;top:100%;}
/* line 18,../scss/main.scss */
.window:nth-child(3){background:#6ab29f;top:200%;}
/* line 18,../scss/main.scss */
.window:nth-child(4){background:#333a3e;top:300%;}
/* line 18,../scss/main.scss */
.window:nth-child(5){background:#d0482b;top:400%;}
/* line 18,../scss/main.scss */
.window:nth-child(6){background:#231f20;top:500%;}
附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
426.15 KB
jquery特效1
最新结算
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
HTML5实现CSS滤镜图片切换特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery+css3实现信封效果
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章