在我的应用程序中,我有 2 个 div,其中一个有很长的产品列表,可以拖到另一个 div(购物车)中。产品 div 有溢出,但它破坏了原型可拖动元素。原型黑客非常突兀,并不与所有浏览器兼容。
所以我采取了不同的方法,是否可以在不使用 CSS 的情况下拥有一个可滚动的 div overflow:auto
?
在我的应用程序中,我有 2 个 div,其中一个有很长的产品列表,可以拖到另一个 div(购物车)中。产品 div 有溢出,但它破坏了原型可拖动元素。原型黑客非常突兀,并不与所有浏览器兼容。
所以我采取了不同的方法,是否可以在不使用 CSS 的情况下拥有一个可滚动的 div overflow:auto
?
有一个 CSS 属性来控制它。
<div style="width:100px;height:100px;overflow:scroll">
</div>
您可以使用内容大于其窗口的框架。可能会使传递 JS 事件变得困难。
这是我写的让它在 IE 8.0.6 和 Firefox 3.6.3 下运行的内容:
使"width:100px;scrollable:auto"
容器中的元素(带边框)可拖动:
function makeDraggable(container,tag) {
if(!container || !tag) { return false; }
$(container).select(tag).each( function(o) {
new Draggable(o,{
starteffect: function(e){makeDragVisible(container,e);},
endeffect: function(e){e.setStyle({'position':'','width':'','cursor':''});},
zindex: 1000
// , revert: ... // the other options
});
});
}
function makeDragVisible(container,element) {
if(!container || !element) { return false; }
var i=$(container).getStyle('width');
i=i.replace('px','');
i=Math.round(i-20)+'px';
element.setStyle({'width':i,'z-index':1000,'position':'absolute','cursor':'move'});
//
$(container).setStyle({});
}
重要笔记:
'starteffect'
。光标和宽度只是为了保持拖动用户友好。我希望它有所帮助。