1
正如你可以在這個鏈接中看到的:https://www.tumblr.com/explore/text 當我們點擊並拖動標籤太多左右時,它們會自動回到原來的位置。如何使像tumblr jQuery的滾動效果?
現在我可以讓我的鏈接,這意味着<一個>元素,移動到左側和右側,但如果我拖動太多,他們不能被帶回到原來的位置。我的工作是在這裏:https://codepen.io/victorcruzte/pen/oxMYJw
HTML:
<div class="parent">
<div class="children">
<a href="#">abcdefg</a>
<a href="#">abcdefg</a>
<a href="#">abcdefg</a>
<a href="#">abcdefg</a>
<a href="#">abcdefg</a>
<a href="#">abcdefg</a>
<a href="#">abcdefg</a>
<a href="#">abcdefg</a>
</div>
</div>
CSS:
.parent {
margin: 200px auto;
width: 200px;
height: 100px;
overflow: hidden;
border: 1px solid #000;
}
.children {
float: left;
white-space: nowrap;
}
JS:
var x1, x2 = 0, x3;
var click = false;
var temp = 0, temp2, temp3 = 0;
function draga() {
$('.children a').click(function(e) {
e.preventDefault();
});
$('.children').mousedown(function(e) {
click = true;
x1 = e.pageX;
});
$(document).mouseup(function() {
click = false;
});
$('.children').mousemove(function(e) {
if (click === false) return;
e.stopPropagation();
(temp3 != x1) ? (temp2 = 0) : (temp2 = x2);
temp3 = x1;
x2 = e.pageX;
(temp2 === 0) ? x3 = (x2 - x1) : x3 = (x2 - temp2);
temp += x3;
$(this).css('background-color', 'pink');
$(this).css('transform', 'translate('+ temp + 'px, 0px');
});
};
$(window).load(function() {
draga();
});
我是新來的jQuery,所以希望你能幫助我。非常感謝你!
非常感謝您!但是,這真的很難理解,但是:D –
整個sulu ruin基於數學,你忘記的唯一的東西是檢查div的末端何時通過容器。然後,我也修復了這個問題,通過刪除複製選項並在離開容器後div被綁定時爲rebounds效果添加了一些動畫,從而實現平滑拖動。希望這可以幫助。 – Zorken17