带溢出的持有者中的div div:隐藏的卷轴垂直和水平滚动 - mousemove

时间:2015-12-06 19:44:14

标签: javascript jquery html css mouseevent

我正在尝试在持有者div中创建圆形div。与overflow:hidden;。我遇到了mousemove事件的一些问题。以下是我的示例:jsfiddle,这是我的目标:ello.co。我还搜索了一些关于mousemove的问题,但我找不到纵向和横向的问题。 HTML:

<div id="holder"><ul id="scroll">
<li><div class="si"></div></li>
<li><div class="si"></div></li><ul>
<li><div class="si"></div></li><ul>  
</ul>
</ul></div>

的CSS:

#holder {
    background: pink;
    width: 500px;
    height: 500px;
    overflow:hidden;
    line-height: 30px;
    margin-left: 100px;
}
#scroll{
    height: 30px;
    line-height: 30px;
    margin-left: 0;
    padding: 0 10px;
}
#scroll li {
    float: left;
    padding: 0 5px;
}

.si{
  width:150px;
  height:150px;
  background-color:black;
  float:left;
  border-radius:150px;
  margin:10px;
}
.si:hover{
  width:160px;
  height:160px;
  margin:2px;
}

的javascript:

var sum = 0;
$("#scroll li").each(function() {
    sum += $(this).width() + parseInt($(this).css('paddingLeft')) + parseInt($(this).css('paddingRight'))
});
$("#scroll").css('width', sum);

$("#holder").mousemove(function(e) {
    x = -(((e.pageX - $('#scroll').position().left) / $("#holder").width()) * ($("#scroll").width() + parseInt($("#scroll").css('paddingLeft')) + parseInt($("#scroll").css('paddingRight')) - $("#holder").width()));

    $("#scroll").css({
        'marginLeft': x + 'px'
    });
});

1 个答案:

答案 0 :(得分:2)

如果你想让它垂直移动,你可以使用与x相同的代码并进行调整:

http://jsfiddle.net/pAu8Q/511/

y = -(((e.pageY - $('#scroll').position().left) / $("#holder").width()) * ($("#scroll").width() + parseInt($("#scroll").css('paddingTop')) + parseInt($("#scroll").css('paddingBottom')) - $("#holder").width()));

$("#scroll").css({
    'marginTop': y + 'px'
});