Как это? Просто добавьте атрибут left
и top
в fixed
div
http://jsfiddle.net/t5bK9/
Хорошо, это работает в Chrome и IE8 (убедитесь, что это стандартный режим, а не причуды), но по какой-то причине не в jsFiddle. Я не уверен, почему, но он делает то, что вы хотите (я думаю). Если вы хотите быть уверены, что это всегда 10px правильно, в случае изменения размера div, вы можете добавить слушатель onResize в bigDiv для повторного вызова функции positFix.
<html>
<head>
<style>
#bigDiv {
border: 1px solid red;
height: 2000px;
width: 100px;
float: left;
}
#littleDiv {
border: 1px solid green;
height: 400px;
width: 200px;
float: left;
}
#littleDivFixed {
border: 1px solid blue;
height: 100px;
width: 200px;
top: 10px;
position: fixed;
}
</style>
<script type="text/javascript">
function $(elem) {
return document.getElementById(elem);
}
function positFix() {
$('littleDivFixed').style.left = $('bigDiv').offsetWidth + 10;
}
</script>
</head>
<body>
<div id="bigDiv">
</div>
<div id="littleDiv">
</div>
<div id="littleDivFixed">
</div>
<script type="text/javascript">
positFix();
</script>
</body>
</html>