我正在使用从 stackoverflow 中的帖子中找到的代码来水平滚动分区。我可以将div滚动为全宽,但是不能滚动特定的宽度。
$("div").on("click", function(event) {
event.preventDefault();
$("html, body").animate({
scrollLeft: $(document).width()
}, "slow");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>
以上代码有效!
jQuery文档说width()函数可以获取值作为参数,但是当我尝试如下操作时,滚动无法正常工作。
$("div").on("click", function(event) {
event.preventDefault();
$("html, body").animate({
scrollLeft: $(document).width(50)
}, "slow");
});
我该如何解决?
答案 0 :(得分:0)
您在这里找到解决方法
文档:https://api.jquery.com/scrollleft/
$("div").on("click", function(event) {
event.preventDefault();
$("html, body").animate({
scrollLeft: "50px"
}, "slow");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>
希望这会对您有所帮助。
答案 1 :(得分:0)
这是因为构造$(document).width(50)
无效,您只能使用常规数字或计算结果。例如,这些结果有效:
$(document).width()
50
$(document).width() - 50
这里是一个例子:
$("div").on("click", function(event) {
event.preventDefault();
$("html, body").animate({
scrollLeft: $(document).width() - 1000
}, "slow");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</div>
答案 2 :(得分:0)
原因
为什么scrollLeft: $(document).width(50)
不能工作,因为$(document).width(50)
没有返回有效数字,这是原因。 (因为它是setter方法。)
修复
.scrollLeft(value)是预期的类型:Number(一个整数,指示要将滚动条设置到的新位置。)
$("div").on("click", function(event) {
event.preventDefault();
var ScrollValue = $(document).width() - 100;
$("html, body").animate({
scrollLeft: ScrollValue
}, "slow");
});
ScrollValue
可以根据您的要求进行计算,并作为整数值传递。
希望这可以解决您的问题,有关更多信息,请参见:https://api.jquery.com/scrollleft/
答案 3 :(得分:0)
<script src="//unpkg.com/angular/angular.js"></script>
<body ng-app="plunker" ng-controller="MainCtrl">
<p>Hello {{name}}!</p>
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>Name</th>
<th>Status</th>
<th>Cost</th>
<th>Items</th>
<th>Card</th>
<th>Cost</th>
</tr>
</thead>
<tbody>
<tr class="trigger" ng-repeat-start="car in carList | filter:tableFilter" ng-click="main.activeRow = !main.activeRow">
<td><a href="#">+</a><span style="padding:4px;">{{car.name}}</span></td>
<td>{{car.review}}</td>
<td>{{car.rating}}</td>
<td>{{car.fiveStarPercent}}</td>
<td>{{car.recommended}}</td>
<td>{{car.price}}</td>
</tr>
<tr ng-repeat-end ng-show="main.activeRow" ng-repeat="subling in car.descrt">
<td>{{subling.name}}</td>
<td>{{subling.rating}}</td>
<td>{{subling.review}}</td>
<td>{{subling.description}}</td>
<td>{{subling.card}}</td>
<td>{{subling.gift}}</td>
</tr>
</tbody>
</table>
</body>
函数提供窗口宽度。这意味着$(document).width()
等于一个值。然后,您必须用值替换$(document).width()
。就是这样。
$(document).width()