Нужно изменить данные в переменной при клике

311
10 ноября 2017, 11:12

Доброго времени суток, моя ситуация заключается в чем:

есть переменная settings и в ней есть настройка - scrollWheel, а в ней enabled: true

    var settings = {
    // Scroll wheel.
    scrollWheel: {
        // If true, enables scrolling via the scroll wheel.
        enabled: true,
        // Sets the scroll wheel factor. (Ideally) a value between 0 and 1 (lower = slower scroll, higher = faster scroll).
        factor: 1
    },
}

мне нужно чтобы enabled: true, при клике на блок с id="card" менялся на enabled: false. Надеюсь на вашу помощь, и заранее благодарен.

(function($) {
// Settings.
var settings = {
    // Keyboard shortcuts.
    keyboardShortcuts: {
        // If true, enables scrolling via keyboard shortcuts.
        enabled: true,
        // Sets the distance to scroll when using the left/right arrow keys.
        distance: 50
    },
    // Scroll wheel.
    scrollWheel: {
        // If true, enables scrolling via the scroll wheel.
        enabled: true,
        // Sets the scroll wheel factor. (Ideally) a value between 0 and 1 (lower = slower scroll, higher = faster scroll).
        factor: 1
    },
    // Scroll zones.
    scrollZones: {
        // If true, enables scrolling via scroll zones on the left/right edges of the scren.
        enabled: true,
        // Sets the speed at which the page scrolls when a scroll zone is active (higher = faster scroll, lower = slower scroll).
        speed: 15
    },
    // Dragging.
    dragging: {
        // If true, enables scrolling by dragging the main wrapper with the mouse.
        enabled: true,
        // Sets the momentum factor. Must be a value between 0 and 1 (lower = less momentum, higher = more momentum, 0 = disable momentum scrolling).
        momentum: 0.875,
        // Sets the drag threshold (in pixels).
        threshold: 10
    },
    // If set to a valid selector , prevents key/mouse events from bubbling from these elements.
    excludeSelector: 'input:focus, select:focus, textarea:focus, audio, video, iframe',
    // Link scroll speed.
    linkScrollSpeed: 1000
};
// Skel.
skel.breakpoints({
    xlarge: '(max-width: 1680px)',
    large: '(max-width: 1280px)',
    medium: '(max-width: 980px)',
    small: '(max-width: 780px)',
    xsmall: '(max-width: 480px)',
    xxsmall: '(max-width: 360px)',
    short: '(min-aspect-ratio: 16/7)',
    xshort: '(min-aspect-ratio: 16/6)'
});
// Ready event.
$(function() {
    // Vars.
    var $window = $(window),
            $document = $(document),
            $body = $('body'),
            $html = $('html'),
            $bodyHtml = $('body,html'),
            $wrapper = $('#js-content-wrapper');
    // Disable animations/transitions until the page has loaded.
    $body.addClass('is-loading');
    $window.on('load', function() {
        window.setTimeout(function() {
            $body.removeClass('is-loading');
        }, 100);
    });
    // Tweaks/fixes.
    // Mobile: Revert to native scrolling.
    if (skel.vars.mobile) {
        // Disable all scroll-assist features.
        settings.keyboardShortcuts.enabled = false;
        settings.scrollWheel.enabled = false;
        settings.scrollZones.enabled = false;
        settings.dragging.enabled = false;
        // Re-enable overflow on body.
        $body.css('overflow-x', 'auto');
    }
    // IE: Various fixes.
    if (skel.vars.browser == 'ie') {
        // Enable IE mode.
        $body.addClass('is-ie');
        // Page widths.
        $window
            .on('load resize', function() {
            // Calculate wrapper width.
            var w = 0;
            $wrapper.children().each(function() {
                w += $(this).width();
            });
            // Apply to page.
            $html.css('width', w + 'px');
        });
    }
    // Polyfill: Object fit.
    if (!skel.canUse('object-fit')) {
        $('.image[data-position]').each(function() {
            var $this = $(this),
                    $img = $this.children('img');
            // Apply img as background.
            $this
                .css('background-image', 'url("' + $img.attr('src') + '")')
                .css('background-position', $this.data('position'))
                .css('background-size', 'cover')
                .css('background-repeat', 'no-repeat');
            // Hide img.
            $img
                .css('opacity', '0');
        });
    }
    // Keyboard shortcuts.
    if (settings.keyboardShortcuts.enabled)
        (function() {
            $wrapper
            // Prevent keystrokes inside excluded elements from bubbling.
                .on('keypress keyup keydown', settings.excludeSelector, function(event) {
                // Stop propagation.
                event.stopPropagation();
            });
            $window
            // Keypress event.
                .on('keydown', function(event) {
                var scrolled = false;
                switch (event.keyCode) {
                        // Left arrow.
                    case 37:
                        $document.scrollLeft($document.scrollLeft() - settings.keyboardShortcuts.distance);
                        scrolled = true;
                        break;
                        // Right arrow.
                    case 39:
                        $document.scrollLeft($document.scrollLeft() + settings.keyboardShortcuts.distance);
                        scrolled = true;
                        break;
                        // Page Up.
                    case 33:
                        $document.scrollLeft($document.scrollLeft() - $window.width() + 100);
                        scrolled = true;
                        break;
                        // Page Down, Space.
                    case 34:
                    case 32:
                        $document.scrollLeft($document.scrollLeft() + $window.width() - 100);
                        scrolled = true;
                        break;
                        // Home.
                    case 36:
                        $document.scrollLeft(0);
                        scrolled = true;
                        break;
                        // End.
                    case 35:
                        $document.scrollLeft($document.width());
                        scrolled = true;
                        break;
                                                         }
                // Scrolled?
                if (scrolled) {
                    // Prevent default.
                    event.preventDefault();
                    event.stopPropagation();
                    // Stop link scroll.
                    $bodyHtml.stop();
                }
            });
        })();
    // Scroll wheel.
    if (settings.scrollWheel.enabled)
        (function() {
            // Based on code by @miorel + @pieterv of Facebook (thanks guys :)
            // github.com/facebook/fixed-data-table/blob/master/src/vendor_upstream/dom/normalizeWheel.js
            var normalizeWheel = function(event) {
                var pixelStep = 10,
                        lineHeight = 40,
                        pageHeight = 800,
                        sX = 0,
                        sY = 0,
                        pX = 0,
                        pY = 0;
                // Legacy.
                if ('detail' in event)
                    sY = event.detail;
                else if ('wheelDelta' in event)
                    sY = event.wheelDelta / -120;
                else if ('wheelDeltaY' in event)
                    sY = event.wheelDeltaY / -120;
                if ('wheelDeltaX' in event)
                    sX = event.wheelDeltaX / -120;
                // Side scrolling on FF with DOMMouseScroll.
                if ('axis' in event
                        &&  event.axis === event.HORIZONTAL_AXIS) {
                    sX = sY;
                    sY = 0;
                }
                // Calculate.
                pX = sX * pixelStep;
                pY = sY * pixelStep;
                if ('deltaY' in event)
                    pY = event.deltaY;
                if ('deltaX' in event)
                    pX = event.deltaX;
                if ((pX || pY)
                        &&  event.deltaMode) {
                    if (event.deltaMode == 1) {
                        pX *= lineHeight;
                        pY *= lineHeight;
                    }
                    else {
                        pX *= pageHeight;
                        pY *= pageHeight;
                    }
                }
                // Fallback if spin cannot be determined.
                if (pX && !sX)
                    sX = (pX < 1) ? -1 : 1;
                if (pY && !sY)
                    sY = (pY < 1) ? -1 : 1;
                // Return.
                return {
                    spinX: sX,
                    spinY: sY,
                    pixelX: pX,
                    pixelY: pY
                };
            };
            // Wheel event.
            $body.on('wheel', function(event) {
                // Disable on <=small.
                if (skel.breakpoint('small').active)
                    return;
                // Prevent default.
                event.preventDefault();
                event.stopPropagation();
                // Stop link scroll.
                $bodyHtml.stop();
                // Calculate delta, direction.
                var n = normalizeWheel(event.originalEvent),
                        x = (n.pixelX != 0 ? n.pixelX : n.pixelY),
                        delta = Math.min(Math.abs(x), 150) * settings.scrollWheel.factor,
                        direction = x > 0 ? 1 : -1;
                // Scroll page.
                $document.scrollLeft($document.scrollLeft() + (delta * direction));
            });
        })();
    // Scroll zones.
    if (settings.scrollZones.enabled)
        (function() {
            var $left = $('<div class="scrollZone left"></div>'),
                    $right = $('<div class="scrollZone right"></div>'),
                    $zones = $left.add($right),
                    paused = false,
                    intervalId = null,
                    direction,
                    activate = function(d) {
                        // Disable on <=small.
                        if (skel.breakpoint('small').active)
                            return;
                        // Paused? Bail.
                        if (paused)
                            return;
                        // Stop link scroll.
                        $bodyHtml.stop();
                        // Set direction.
                        direction = d;
                        // Initialize interval.
                        clearInterval(intervalId);
                        intervalId = setInterval(function() {
                            $document.scrollLeft($document.scrollLeft() + (settings.scrollZones.speed * direction));
                        }, 25);
                    },
                    deactivate = function() {
                        // Unpause.
                        paused = false;
                        // Clear interval.
                        clearInterval(intervalId);
                    };
            $zones
                .appendTo($wrapper)
                .on('mouseleave mousedown', function(event) {
                deactivate();
            });
            $left
                .css('left', '0')
                .on('mouseenter', function(event) {
                activate(-1);
            });
            $right
                .css('right', '0')
                .on('mouseenter', function(event) {
                activate(1);
            });
            $wrapper
                .on('---pauseScrollZone', function(event) {
                // Pause.
                paused = true;
                // Unpause after delay.
                setTimeout(function() {
                    paused = false;
                }, 500);
            });
        })();
    // Dragging.
    if (settings.dragging.enabled)
        (function() {
            var dragging = false,
                    dragged = false,
                    distance = 0,
                    startScroll,
                    momentumIntervalId, velocityIntervalId,
                    startX, currentX, previousX,
                    velocity, direction;
            $wrapper
            // Prevent image drag and drop.
                .on('mouseup mousemove mousedown', '.image, img', function(event) {
                event.preventDefault();
            })
            // Prevent mouse events inside excluded elements from bubbling.
                .on('mouseup mousemove mousedown', settings.excludeSelector, function(event) {
                // Prevent event from bubbling.
                event.stopPropagation();
                // End drag.
                dragging = false;
                $wrapper.removeClass('is-dragging');
                clearInterval(velocityIntervalId);
                clearInterval(momentumIntervalId);
                // Pause scroll zone.
                $wrapper.triggerHandler('---pauseScrollZone');
            })
            // Mousedown event.
                .on('mousedown', function(event) {
                // Disable on <=small.
                if (skel.breakpoint('small').active)
                    return;
                // Clear momentum interval.
                clearInterval(momentumIntervalId);
                // Stop link scroll.
                $bodyHtml.stop();
                // Start drag.
                dragging = true;
                $wrapper.addClass('is-dragging');
                // Initialize and reset vars.
                startScroll = $document.scrollLeft();
                startX = event.clientX;
                previousX = startX;
                currentX = startX;
                distance = 0;
                direction = 0;
                // Initialize velocity interval.
                clearInterval(velocityIntervalId);
                velocityIntervalId = setInterval(function() {
                    // Calculate velocity, direction.
                    velocity = Math.abs(currentX - previousX);
                    direction = (currentX > previousX ? -1 : 1);
                    // Update previous X.
                    previousX = currentX;
                }, 50);
            })
            // Mousemove event.
                .on('mousemove', function(event) {
                // Not dragging? Bail.
                if (!dragging)
                    return;
                // Velocity.
                currentX = event.clientX;
                // Scroll page.
                $document.scrollLeft(startScroll + (startX - currentX));
                // Update distance.
                distance = Math.abs(startScroll - $document.scrollLeft());
                // Distance exceeds threshold? Disable pointer events on all descendents.
                if (!dragged
                        &&  distance > settings.dragging.threshold) {
                    $wrapper.addClass('is-dragged');
                    dragged = true;
                }
            })
            // Mouseup/mouseleave event.
                .on('mouseup mouseleave', function(event) {
                var m;
                // Not dragging? Bail.
                if (!dragging)
                    return;
                // Dragged? Re-enable pointer events on all descendents.
                if (dragged) {
                    setTimeout(function() {
                        $wrapper.removeClass('is-dragged');
                    }, 100);
                    dragged = false;
                }
                // Distance exceeds threshold? Prevent default.
                if (distance > settings.dragging.threshold)
                    event.preventDefault();
                // End drag.
                dragging = false;
                $wrapper.removeClass('is-dragging');
                clearInterval(velocityIntervalId);
                clearInterval(momentumIntervalId);
                // Pause scroll zone.
                $wrapper.triggerHandler('---pauseScrollZone');
                // Initialize momentum interval.
                if (settings.dragging.momentum > 0) {
                    m = velocity;
                    momentumIntervalId = setInterval(function() {
                        // Scroll page.
                        $document.scrollLeft($document.scrollLeft() + (m * direction));
                        // Decrease momentum.
                        m = m * settings.dragging.momentum;
                        // Negligible momentum? Clear interval and end.
                        if (Math.abs(m) < 1)
                            clearInterval(momentumIntervalId);
                    }, 15);
                }
            });
        })();
    // Link scroll.
    $wrapper
        .on('mousedown mouseup', 'a[href^="#"]', function(event) {
        // Stop propagation.
        event.stopPropagation();
    })
        .on('click', 'a[href^="#"]', function(event) {
        var $this = $(this),
                href = $this.attr('href'),
                $target, x, y;
        // Get target.
        if (href == '#'
                ||  ($target = $(href)).length == 0)
            return;
        // Prevent default.
        event.preventDefault();
        event.stopPropagation();
        // Calculate x, y.
        if (skel.breakpoint('small').active) {
            x = $target.offset().top - (Math.max(0, $window.height() - $target.outerHeight()) / 2);
            y = { scrollTop: x };
        }
        else {
            x = $target.offset().left - (Math.max(0, $window.width() - $target.outerWidth()) / 2);
            y = { scrollLeft: x };
        }
        // Scroll.
        $bodyHtml
            .stop()
            .animate(
            y,
            settings.linkScrollSpeed,
            'swing'
        );
    });
    // Gallery.
    $('.gallery')
        .on('click', 'a', function(event) {
        var $a = $(this),
                $gallery = $a.parents('.gallery'),
                $modal = $gallery.children('.modal'),
                $modalImg = $modal.find('img'),
                href = $a.attr('href');
        // Not an image? Bail.
        if (!href.match(/\.(jpg|gif|png|mp4)$/))
            return;
        // Prevent default.
        event.preventDefault();
        event.stopPropagation();
        // Locked? Bail.
        if ($modal[0]._locked)
            return;
        // Lock.
        $modal[0]._locked = true;
        // Set src.
        $modalImg.attr('src', href);
        // Set visible.
        $modal.addClass('visible');
        // Focus.
        $modal.focus();
        // Delay.
        setTimeout(function() {
            // Unlock.
            $modal[0]._locked = false;
        }, 600);
    })
        .on('click', '.modal', function(event) {
        var $modal = $(this),
                $modalImg = $modal.find('img');
        // Locked? Bail.
        if ($modal[0]._locked)
            return;
        // Already hidden? Bail.
        if (!$modal.hasClass('visible'))
            return;
        // Stop propagation.
        event.stopPropagation();
        // Lock.
        $modal[0]._locked = true;
        // Clear visible, loaded.
        $modal
            .removeClass('loaded')
        // Delay.
        setTimeout(function() {
            $modal
                .removeClass('visible')
            // Pause scroll zone.
            $wrapper.triggerHandler('---pauseScrollZone');
            setTimeout(function() {
                // Clear src.
                $modalImg.attr('src', '');
                // Unlock.
                $modal[0]._locked = false;
                // Focus.
                $body.focus();
            }, 475);
        }, 125);
    })
        .on('keypress', '.modal', function(event) {
        var $modal = $(this);
        // Escape? Hide modal.
        if (event.keyCode == 27)
            $modal.trigger('click');
    })
        .on('mouseup mousedown mousemove', '.modal', function(event) {
        // Stop propagation.
        event.stopPropagation();
    })
        .prepend('<div class="modal" tabIndex="-1"><div class="inner"><img src="" /></div></div>')
        .find('img')
        .on('load', function(event) {
        var $modalImg = $(this),
                $modal = $modalImg.parents('.modal');
        setTimeout(function() {
            // No longer visible? Bail.
            if (!$modal.hasClass('visible'))
                return;
            // Set loaded.
            $modal.addClass('loaded');
        }, 275);
    });
});
})(jQuery);
READ ALSO
После клика на кнопку соцсети появится другая ссылка

После клика на кнопку соцсети появится другая ссылка

Хочу на сайт установить скрипт, чтобы перед тем как появилась кнопка для скачивания файла, пользователь сначала нажал на кнопку и поделился...

363
Верно ли решена задача? Что можно улучшить?

Верно ли решена задача? Что можно улучшить?

Создайте инпут, в который пользователь вводит дату своего рождения в формате '2014-12-31' (с конкретным годом)По потери фокуса выведите под инпутом...

290
Создание и добавление в массив &ldquo;на лету&rdquo;

Создание и добавление в массив “на лету”

Пытаюсь обновлять значение переменной, если это строка, то переводить ее в массив c одним индексом

236