1
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-08-13 17:14:04 +02:00

swipe left/right without hammerjs

This commit is contained in:
Johann-S
2018-10-14 13:59:51 +02:00
committed by XhmikosR
parent caefd70463
commit c08652cfe8
16 changed files with 122 additions and 158 deletions

View File

@@ -20,7 +20,6 @@
}())
</script>
<script src="../../node_modules/popper.js/dist/umd/popper.min.js"></script>
<script src="../../node_modules/hammerjs/hammer.min.js"></script>
<!-- QUnit -->
<link rel="stylesheet" href="../../node_modules/qunit/qunit/qunit.css" media="screen">

View File

@@ -12,16 +12,16 @@ const jqueryFile = process.env.USE_OLD_JQUERY ? 'https://code.jquery.com/jquery-
const bundle = process.env.BUNDLE === 'true'
const browserStack = process.env.BROWSER === 'true'
const plugins = [
'karma-qunit',
'karma-sinon'
]
const frameworks = [
'qunit',
'sinon'
]
const plugins = [
'karma-qunit',
'karma-sinon'
]
const reporters = ['dots']
const detectBrowsers = {
@@ -48,7 +48,6 @@ const customLaunchers = {
let files = [
'node_modules/popper.js/dist/umd/popper.min.js',
'node_modules/hammerjs/hammer.min.js',
'node_modules/hammer-simulator/index.js'
]

View File

@@ -3,8 +3,6 @@ $(function () {
window.Carousel = typeof bootstrap !== 'undefined' ? bootstrap.Carousel : Carousel
var touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0
QUnit.module('carousel plugin')
QUnit.test('should be defined on jQuery object', function (assert) {
@@ -1009,13 +1007,8 @@ $(function () {
})
QUnit.test('should allow swiperight and call prev', function (assert) {
if (!touchSupported) {
assert.expect(0)
return
}
assert.expect(2)
Simulator.setType('touch')
assert.expect(3)
var done = assert.async()
document.documentElement.ontouchstart = $.noop
@@ -1035,10 +1028,13 @@ $(function () {
$carousel.appendTo('#qunit-fixture')
var $item = $('#item')
$carousel.bootstrapCarousel()
var carousel = $carousel.data('bs.carousel')
var spy = sinon.spy(carousel, 'prev')
$carousel.one('slid.bs.carousel', function () {
assert.ok(true, 'slid event fired')
assert.ok($item.hasClass('active'))
assert.ok(spy.called)
delete document.documentElement.ontouchstart
done()
})
@@ -1049,40 +1045,10 @@ $(function () {
})
})
QUnit.test('should not use HammerJS when touch option is false', function (assert) {
assert.expect(1)
var $carousel = $('<div></div>').appendTo('#qunit-fixture')
$carousel.bootstrapCarousel({
touch: false
})
var carousel = $carousel.data('bs.carousel')
assert.strictEqual(carousel.hammer, null)
})
QUnit.test('should use HammerJS when touch option is true', function (assert) {
assert.expect(1)
document.documentElement.ontouchstart = $.noop
var $carousel = $('<div></div>').appendTo('#qunit-fixture')
$carousel.bootstrapCarousel()
var carousel = $carousel.data('bs.carousel')
assert.ok(carousel.hammer !== null)
})
QUnit.test('should allow swipeleft and call next', function (assert) {
if (!touchSupported) {
assert.expect(0)
assert.expect(3)
Simulator.setType('touch')
return
}
assert.expect(2)
var done = assert.async()
document.documentElement.ontouchstart = $.noop
@@ -1102,11 +1068,13 @@ $(function () {
$carousel.appendTo('#qunit-fixture')
var $item = $('#item')
$carousel.bootstrapCarousel()
var carousel = $carousel.data('bs.carousel')
var spy = sinon.spy(carousel, 'next')
$carousel.one('slid.bs.carousel', function () {
assert.ok(true, 'slid event fired')
assert.ok(!$item.hasClass('active'))
delete document.documentElement.ontouchstart
assert.ok(spy.called)
done()
})
@@ -1116,4 +1084,25 @@ $(function () {
deltaY: 0
})
})
QUnit.test('should not allow pinch', function (assert) {
assert.expect(0)
Simulator.setType('touch')
var done = assert.async()
document.documentElement.ontouchstart = $.noop
var carouselHTML = '<div class="carousel" data-interval="false"></div>'
var $carousel = $(carouselHTML)
$carousel.appendTo('#qunit-fixture')
$carousel.bootstrapCarousel()
Simulator.gestures.swipe($carousel[0], {
pos: [300, 10],
deltaX: -300,
deltaY: 0,
touches: 2
}, function () {
done()
})
})
})

View File

@@ -46,7 +46,6 @@
</div>
<script src="../../../site/docs/4.1/assets/js/vendor/jquery-slim.min.js"></script>
<script src="../../../node_modules/hammerjs/hammer.min.js"></script>
<script src="../../dist/util.js"></script>
<script src="../../dist/carousel.js"></script>
<script>