是否可以将div的左边的DIV的垂直滚动条放入css中?那么jscript呢?DIV垂直滚动条左边
回答
您可以添加一个伪滚动条的任何地方,你想JQuery和这个插件:JScrollPane
好了,所以,我写了一个jQuery插件,给你一个完全本土的前瞻性左侧滚动条。
下面是如何工作的:
注入内
div
窗格内,以允许所述内容宽度(content_width
)的计算。然后,使用它,可以计算原生滚动条宽度:scrollbar_width = parent_width - content_width - horizontal_padding
。在窗格内部制作两个不同的
divs
,两者都填充了内容。一个人的目的是成为一个“poser”。对于滚动条,它仅使用。使用负左边距,该插件将其向左拉,以便只有滚动条在视图中(此边缘的
div
的内容被裁剪掉)。其他
div
用于实际容纳可见的滚动内容。
现在,是时候把两者结合在一起了。将来自“poser”
div
的每50ms(window.setInterval
),scrollTop
偏移应用于可见滚动内容div
。因此,当您使用左侧上的滚动条向上或向下滚动滚动偏移量时,会将滚动偏移量应用回div
并显示可见内容。
这种解释可能很烂,实际上有一个更给它颇有几分,我没有介绍,但是,事不宜迟,在这里它是:
$.fn.leftScrollbar = function(){
var items = $(this);
$(function(){
items.each(function(){
var e = $(this);
var content = e.html();
var ie = !jQuery.support.boxModel;
var w = e[ie?'innerWidth':'width'](), h = e[ie?'innerHeight':'height']();
//calculate paddings
var pad = {};
$(['top', 'right', 'bottom', 'left']).each(function(i, side){
pad[side] = parseInt(e.css('padding-' + side).replace('px',''));
});
//detect scrollbar width
var xfill = $('<div>').css({margin:0, padding:0, height:'1px'});
e.append(xfill);
var contentWidth = xfill.width();
var scrollerWidth = e.innerWidth() - contentWidth - pad.left - pad.right;
e.html('').css({overflow:'hidden'});
e.css('padding', '0');
var poserHeight = h - pad.top - pad.bottom;
var poser = $('<div>')
.html('<div style="visibility:hidden">'+content+'</div>')
.css({
marginLeft: -w+scrollerWidth-(ie?0:pad.left*2),
overflow: 'auto'
})
.height(poserHeight+(ie?pad.top+pad.bottom:0))
.width(w);
var pane = $('<div>').html(content).css({
width: w-scrollerWidth-(ie?0:pad.right+pad.left),
height: h-(ie?0:pad.bottom+pad.top),
overflow: 'hidden',
marginTop: -poserHeight-pad.top*2,
marginLeft: scrollerWidth
});
$(['top', 'right', 'bottom', 'left']).each(function(i, side){
poser.css('padding-'+side, pad[side]);
pane.css('padding-'+side, pad[side]);
});
e.append(poser).append(pane);
var hRatio = (pane.innerHeight()+pad.bottom)/poser.innerHeight();
window.setInterval(function(){
pane.scrollTop(poser.scrollTop()*hRatio);
}, 50);
});
});
};
一旦你已经包括jQuery和这个插件的页面,申请左侧滚动条:
$('#scrollme').leftScrollbar();
更换#scrollme
与CSS选择器,你想申请向左滚动条元素(一个或多个)。
(显然,这降低了很好)
我会在一天左右的时间内做一个演示......努力让博客上去。 – brianreavis 2009-09-21 20:36:55
改为setInterval,尝试为DOMAttrModified(或IE的onpropertychange事件)添加事件侦听器 – Peter 2009-09-21 23:30:11
示例链接已死亡。 – 2010-12-11 18:58:57
我做了一个简单的用例,从而选择了一条简单的CSS的解决方案:
<div style="direction: rtl; height: 250px; overflow: scroll;">
<div style="direction: ltr; padding: 3px;">
Content goes here
</div>
</div>
辉煌和简单。 +1 – 2013-04-25 21:48:07
太棒了,但它似乎没有在Safari上工作(现在在Safari 5.1.7上测试它,滚动条在右侧)。 – 2013-07-03 09:46:44
很聪明。没有处理我的具体案例,但非常合理。我喜欢简单解决方案。 – 2013-11-22 05:41:36
- 1. 只有垂直滚动条与垂直边缘的div
- 2. 垂直滚动条
- 3. 垂直滚动条
- 4. UL或DIV垂直滚动条
- 5. 垂直居中全屏div滚动条
- 6. DIV高度垂直滚动条
- 7. jscrollpane垂直滚动条
- 8. 垂直滚动条scrollTo jQuery
- 9. 与垂直滚动条
- 10. 垂直滚动条在JTable
- 11. iframe垂直滚动条
- 12. CSS:100% - 高度/宽度边界div内的DIV创建垂直滚动条,但不是水平滚动条
- 13. 垂直滚动的水平滚动条
- 14. img in div浮动左边文字垂直和水平居中
- 15. 浮动的垂直对齐:左div的
- 16. 垂直滚动时水平移动DIV
- 17. C#/ winforms面板左侧有垂直滚动条?
- 18. Swing JScrollPane - 如何将垂直滚动条设置到左侧?
- 19. 滚动垂直
- 20. 垂直滚动div内的水平滚动div
- 21. 在南部地区的边界布局的垂直滚动条
- 22. 垂直滚动的div容器内
- 23. 垂直滚动100%高度div
- 24. 垂直滚动div无重叠父
- 25. 垂直滚动div不同速度
- 26. 显示父水平滚动条和子垂直滚动条
- 27. DataGrid垂直滚动条仅当DataGrid滚动到最右边时才可见
- 28. 修复垂直滚动条位置第二行在div(cshtml)?
- 29. CSS显示垂直滚动条到一个div
- 30. 如何在div上只有一个垂直滚动条
人(使用LTR文件无论如何)预计在右侧滚动条。你真的应该把他们留在那里。 (如果你正在处理RTL语言,那么滚动条将会在左边,除非你的语言和文本方向的标记是错误的) – Quentin 2009-09-21 20:34:01
@Quentin:Chrome总是在右侧显示垂直滚动条。 – CSharper 2012-03-07 15:17:56