jQuery addClass example
Change class name on click in jQuery
HTML
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>Слайдер</title>
<link rel="stylesheet" href="css/slider.css">
</head>
<body>
<div class="slider-container">
<div class="slider">
<div class="slider__item"><a href="javascript:void(0)"><img src="//konyakov.ru/pubs/recipes/js-css-slider/img/slide1.jpg" alt=""></a></div>
<div class="slider__item"><a href="javascript:void(0)"><img src="//konyakov.ru/pubs/recipes/js-css-slider/img/slide2.jpg" alt=""></a></div>
<div class="slider__item"><a href="javascript:void(0)"><img src="//konyakov.ru/pubs/recipes/js-css-slider/img/slide3.jpg" alt=""></a></div>
<div class="slider__item"><a href="javascript:void(0)"><img src="//konyakov.ru/pubs/recipes/js-css-slider/img/slide4.jpg" alt=""></a></div>
</div>
<div class="slider__switch slider__switch--prev" data-ikslider-dir="prev">
<span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M13.89 17.418c.27.272.27.71 0 .98s-.7.27-.968 0l-7.83-7.91c-.268-.27-.268-.706 0-.978l7.83-7.908c.268-.27.7-.27.97 0s.267.71 0 .98L6.75 10l7.14 7.418z"/></svg></span>
</div>
<div class="slider__switch slider__switch--next" data-ikslider-dir="next">
<span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M13.25 10L6.11 2.58c-.27-.27-.27-.707 0-.98.267-.27.7-.27.968 0l7.83 7.91c.268.27.268.708 0 .978l-7.83 7.908c-.268.27-.7.27-.97 0s-.267-.707 0-.98L13.25 10z"/></svg></span>
</div>
</div>
<script src="js/jquery.min.js"></script>
<script src="js/slider.js"></script>
</body>
</html>
CSS
body {
max-width: 900px;
width: 100%;
margin: 0 auto;
padding: 20px;
font-size: 14px;
font-family: Helvetica, Arial, sans-serif;
}
/* ==========================================================================
Slider core styles
===========================================================================*/
*,
*:before,
*:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.slider-container {
position: relative;
overflow: hidden;
width: 100%;
margin: 0 auto;
background-color: #444;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.slider {
position: relative;
width: 9999px;
}
.slider:before,
.slider:after {
display: table;
content: ' ';
}
.slider:after {
clear: both;
}
.slider__item {
position: relative;
float: left;
margin: 0;
padding: 0;
height: 100%;
}
.slider__item img {
display: block;
max-width: 100%;
height: auto;
}
.slider__switch span {
color: #fff;
display: block;
width: 32px;
height: 32px;
}
/* Arrows */
.slider__switch {
position: absolute;
top: 50%;
margin-top: -20px;
padding: 10px 5px;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
border-radius: 1px;
background: #000;
opacity: .3;
transition: opacity .15s ease;
fill: #fff;
}
.slider__switch--prev {
left: 10px;
}
.slider__switch--next {
right: 10px;
}
.slider__switch:hover {
opacity: .85;
}
.slider__switch[disabled] {
visibility: hidden;
opacity: 0;
}
.slider__caption {
position: absolute;
bottom: 30px;
left: 30px;
display: block;
max-width: 500px;
padding: 10px;
color: #fff;
background: rgba(0, 0, 0, .8);
box-shadow: 0 0 32px 0 rgba(0, 0, 0, 0.9);
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#99000000',...
JavaScript
(function($) {
'use strict';
/**
* Helpers methods
*/
function supportCSS3(prop) {
var prefix = ['-webkit-', '-moz-', ''];
var root = document.documentElement;
function camelCase(str) {
return str.replace(/\-([a-z])/gi, function(match, $1) {
return $1.toUpperCase();
});
}
for (var i = prefix.length - 1; i >= 0; i--) {
var css3prop = camelCase(prefix[i] + prop);
if (css3prop in root.style) {
return css3prop;
}
}
return false;
}
function transitionEnd() {
var transitions = {
'transition': 'transitionend',
'WebkitTransition': 'webkitTransitionEnd',
'MozTransition': 'mozTransitionEnd'
};
var root = document.documentElement;
for (var name in transitions) {
if (root.style[name] !== undefined) {
return transitions[name];
}
}
return false;
}
function support3d() {
if (!window.getComputedStyle) {
return false;
}
var el = document.createElement('div'),
has3d,
transform = supportCSS3('transform');
document.body.insertBefore(el, null);
el.style[transform] = 'translate3d(1px,1px,1px)';
has3d = getComputedStyle(el)[transform];
document.body.removeChild(el);
return (has3d !== undefined && has3d.length > 0 && has3d !== "none");
}
var Touch = {
hasTouch: !!(("ontouchstart" in window) || window.DocumentTouch && document instanceof DocumentTouch),
event: function() {
return {
start: (this.hasTouch) ? 'touchstart' : 'mousedown',
move: (this.hasTouch) ? 'touchmove' : 'mousemove',
end: (this.hasTouch) ? 'touchend' : 'mouseup',
leave: (this.hasTouch) ? 'touchleave' : 'mouseout'
};
}
};
function throttle(func, wait, options) {
var context, args, result;
var timeout = null;
var previous = 0;
if (!options) options = {};
var later = function() {
previous = options.leading === false ? 0...