简体   繁体   English

鼠标移动时滚动div内容

[英]Scroll div content on mouse move

I have a little trouble with scrolling the div content only on mouse move. 我只是在鼠标移动时滚动div内容有点麻烦。 So no scrollbars are shown etc. 所以没有显示滚动条等。

So I have 17 items. 所以我有17个项目。 Every item is square 50x50 px. 每件商品均为50x50像素。 Mask is 300x50. 面膜是300x50。 So my mask is overflow: hidden and itemsWrapper has width of all subitems. 所以我的面具是overflow: hiddenitemsWrapper具有所有子项的宽度。 I want to make scroll items horizontally on mousemove event. 我想在mousemove事件上水平滚动项目。 Can enyone give me some advice on this? enyone能给我一些建议吗?

For now I have the following code: 现在我有以下代码:

 $(document).ready(function() { $('#navMask').on('mousemove', function(e) { var leftOffset = $(this).offset().left; $('#itemsWrapper').css('left', -e.clientX + leftOffset); console.log($(this).outerWidth() + ' - ' + $(this)[0].scrollWidth); }); }); 
 #navMask { position: relative; overflow: hidden; background: #ccc; margin: 0 5px; width: 300px; height: 50px; } #tabWrapper { position: absolute; margin-left: 0; } .tab { width: 50px; height: 50px; float: left; background: beige; } .tab:hover { background: #e4e4a1; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id='navMask'> <div id='itemsWrapper'> <div class='item'>1</div> <div class='item'>2</div> <div class='item'>3</div> <div class='item'>4</div> <div class='item'>5</div> <div class='item'>6</div> <div class='item'>7</div> <div class='item'>8</div> <div class='item'>9</div> <div class='item'>10</div> <div class='item'>11</div> <div class='item'>12</div> <div class='item'>13</div> <div class='item'>14</div> <div class='item'>15</div> <div class='item'>16</div> <div class='item'>17</div> </div> </div> 

Also the number of items can be dynamically changed so I have another trouble to make it working. 物品的数量也可以动态改变,所以我还有另一个麻烦,让它工作。

Is this almost what you intends?? 这几乎是你想要的吗?

Just add the following style rules: 只需添加以下样式规则:

#itemsWrapper {
  position: absolute;
}
.item {
  width: 100px;
  display: inline-block;
}

Demo 演示

 $(document).ready(function() { $('#navMask').on('mousemove', function(e) { var leftOffset = $(this).offset().left; $('#itemsWrapper').css('left', -e.clientX + leftOffset); console.log($(this).outerWidth() + ' - ' + $(this)[0].scrollWidth); }); }); 
 #navMask { position: relative; overflow: hidden; background: #ccc; margin: 0 5px; width: 300px; height: 50px; } #tabWrapper { position: absolute; margin-left: 0; } .tab { width: 50px; height: 50px; float: left; background: beige; } .tab:hover { background: #e4e4a1; } #itemsWrapper { position: absolute; } .item { width: 100px; display: inline-block; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id='navMask'> <div id='itemsWrapper'> <div class='item'>1</div> <div class='item'>2</div> <div class='item'>3</div> <div class='item'>4</div> <div class='item'>5</div> <div class='item'>6</div> <div class='item'>7</div> <div class='item'>8</div> <div class='item'>9</div> <div class='item'>10</div> <div class='item'>11</div> <div class='item'>12</div> <div class='item'>13</div> <div class='item'>14</div> <div class='item'>15</div> <div class='item'>16</div> <div class='item'>17</div> </div> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM