国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

使用CSS樣式position:fixed水平滾動(dòng)的方法

2019-11-20 21:04:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
使用CSS樣式"position:fixed"可以使div塊固定在一個(gè)固定位置,即使有滾動(dòng)條也不會(huì)改變其位置。position:fixed給很多開(kāi)發(fā)者帶來(lái)了驚艷的效果,然而當(dāng)出現(xiàn)水平滾動(dòng)條時(shí),效果就不那么容易接受了。有時(shí)候我們希望當(dāng)出現(xiàn)水平滾動(dòng)條時(shí),div塊可以隨滾動(dòng)條左右移動(dòng),實(shí)現(xiàn)垂直固定定位(fixed),水平相對(duì)定位(absolute)。本文提供一個(gè)解決方法,附j(luò)query擴(kuò)展源碼。

本文的實(shí)現(xiàn)方式是使用js來(lái)控制div塊隨滾動(dòng)條水平滾動(dòng),原理就是當(dāng)window對(duì)象發(fā)生scroll事件和resize事件使,更新div塊的left或right的值,使其相對(duì)瀏覽器左邊或右邊的位置實(shí)時(shí)改變。div塊需要時(shí)position:fixed樣式修飾。

當(dāng)div塊在水平方向上是相對(duì)瀏覽器右邊固定的,那么當(dāng)window對(duì)象發(fā)生scroll或resize事件時(shí),就更新其right樣式值,其值應(yīng)該是:
復(fù)制代碼 代碼如下:

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

當(dāng)div塊在水平方向上是相對(duì)瀏覽器左邊固定的,那么當(dāng)window對(duì)象發(fā)生scroll或resize事件時(shí),就更新其left樣式值,其值應(yīng)該是:
復(fù)制代碼 代碼如下:

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

上面代碼中出現(xiàn)的original_left和original_right是最初div塊的left和right值。完整的jquery擴(kuò)展代碼如下:
復(fù)制代碼 代碼如下:

(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);

使用實(shí)例:
復(fù)制代碼 代碼如下:

$('#leftsider').scrollFixed({fixed:'left'});
$('#rightsider').scrollFixed({fixed:'right'});
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 香河县| 灌云县| 揭西县| 迁西县| 阿克陶县| 宁陕县| 黎川县| 镇沅| 汽车| 九龙城区| 石城县| 开封县| 祁门县| 南京市| 汉中市| 海阳市| 崇州市| 满洲里市| 扶绥县| 青龙| 上饶县| 河南省| 兴业县| 大名县| 繁昌县| 万年县| 辽源市| 靖安县| 洛阳市| 登封市| 曲阜市| 郎溪县| 和顺县| 米泉市| 洪雅县| 龙海市| 开平市| 志丹县| 阿荣旗| 顺昌县| 松溪县|