展会信息港展会大全

使用CSS样式position:fixed水平滚动的方法
来源:互联网   发布日期:2016-01-28 12:58:44   浏览:2699次  

导读:这篇文章主要介绍了使用CSS样式position:fixed水平滚动的方法,需要的朋友可以参考下使用CSS样式position:fixed可以使div块固定在一个固定位置,即使有滚动条也不会改变其位置。 position:fixed给很多开发者带 ...

这篇文章主要介绍了使用CSS样式position:fixed水平滚动的方法,需要的朋友可以参考下

使用CSS样式"position:fixed"可以使div块固定在一个固定位置,即使有滚动条也不会改变其位置。 position:fixed给很多开发者带来了惊艳的效果,然而当出现水平滚动条时,效果就不那么容易接受了。有时候我们希望当出现水平滚动条 时,div块可以随滚动条左右移动,实现垂直固定定位(fixed),水平相对定位(absolute)。本文提供一个解决方法,附jquery扩展源 码。

本文的实现方式是使用js来控制div块随滚动条水平滚动,原理就是当window对象发生scroll事件和resize事件使,更新div 块的left或right的值,使其相对浏览器左边或右边的位置实时改变。div块需要时position:fixed样式修饰。

当div块在水平方向上是相对浏览器右边固定的,那么当window对象发生scroll或resize事件时,就更新其right样式值,其 值应该是:

复制代码 代码如下:

var new_right = ($(window).scrollLeft() + $(window).width() - $(document).width() + original_right) + 'px'

当div块在水平方向上是相对浏览器左边固定的,那么当window对象发生scroll或resize事件时,就更新其left样式值,其值 应该是:

代码如下:

var new_left = (original_left - $(window).scrollLeft()) + 'px'

上面代码中出现的original_left和original_right是最初div块的left和right值。完整的jquery扩展 代码如下:

代码如下:

(function($){

$.ScrollFixed = function(el, options){

var base = this;

base.$el = $(el);

base.el = el;

var target = base.$el;

var original_left = parseInt(target.css('left'));

var original_right = parseInt(target.css('right'));

var _fix_position = function(){

if(base.options.fixed == 'right'){

target.css('right', ($(window).scrollLeft() + $(window).width() - $(document).width() + original_right) + 'px');

} else if(base.options.fixed == 'left'){

target.css('left', (original_left - $(window).scrollLeft()) + 'px');

}

};

var windowResize = function(){

_fix_position();

};

var windowScroll = function(){

_fix_position();

};

base.init = function(){

base.options = $.extend({}, $.ScrollFixed.defaultOptions, options);

$(window).resize(windowResize);

$(window).scroll(windowScroll);

_fix_position();

console.log(base.options.fixed);

};

base.init();

};

$.ScrollFixed.defaultOptions = {

fixed:'left'

};

$.fn.scrollFixed = function(options){

return this.each(function(){

(new $.ScrollFixed(this, options));

});

};

})(jQuery);

使用实例:

代码如下:

$('#leftsider').scrollFixed({fixed:'left'});

$('#rightsider').scrollFixed({fixed:'right'});

赞助本站

人工智能实验室

相关热词: 滚动 position CSS

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港